XML to JSON Sergey Svistunov

Convert 1,000,000 person records from XML to JSON as fast as possible.

Input

XML document on STDIN:

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person id="1512376">
        <age>30</age>
        <height>169.1</height>
        <married>true</married>
        <phone code="+6"><number>1283603279</number></phone>
        <phone code="+6"><number>1659964668</number></phone>
    </person>
    ...
</persons>

Output

One JSON object per person to STDOUT, preserving order:

{
    "id": 1512376,
    "age": 30,
    "height": 169.1,
    "married": true,
    "phones": [
        {
            "code": "+6",
            "number": 1283603279
        },
        {
            "code": "+6",
            "number": 1659964668
        }
    ]
}

Constraints

  • Preserve the order of persons
  • Omit the phones field if the phone array is empty
  • Maximum number of phones per person is 3
Date AuthorLanguageStatus Score
Sep 8, 2024 15:30Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,346
Sep 8, 2024 15:15Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success3,381
Sep 8, 2024 15:10Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,323
Sep 3, 2024 19:20Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,062+563.97 RP
Sep 3, 2024 19:17Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success8,727
Sep 3, 2024 19:15Yuriy LyfenkoYuriy LyfenkoCPPg++13.2.0Success3,464
Sep 3, 2024 19:13Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success4,532
Sep 3, 2024 16:17AnSaAnSaCPPclang++18.1.3Success3,634+384.36 RP
Sep 3, 2024 14:50Joad NacerJoad NacerCPPg++9.4.0Success3,264
Aug 31, 2024 21:41Yuriy LyfenkoYuriy LyfenkoCPPclang++18.1.3Success5,472
Aug 31, 2024 08:10AnSaAnSaCPPg++9.4.0Success4,224+72.27 RP
Jul 28, 2024 13:43Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success4,750
Jul 28, 2024 13:40Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,457+0.84 RP
Jul 28, 2024 13:35Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,904
Jul 28, 2024 13:26Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success592,982
Jul 28, 2024 13:24Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,474
Jul 28, 2024 13:23Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 13:18Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 13:13Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 13:08Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 13:07Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 12:58Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 12:56Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 12:52Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success5,485
Jul 28, 2024 12:45Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 12:37Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 12:31Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success5,215
Jul 28, 2024 12:30Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success5,871
Jul 28, 2024 12:28Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success5,374
Jul 28, 2024 12:25Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,469
Jul 28, 2024 12:23Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 28, 2024 12:12Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,460
Jul 27, 2024 20:03Joad NacerJoad NacerCPPg++9.4.0Success3,399
Jul 27, 2024 20:02Joad NacerJoad NacerCPPg++9.4.0Success3,386
Jul 27, 2024 20:01Joad NacerJoad NacerCPPg++9.4.0Success3,374
Jul 27, 2024 20:00Joad NacerJoad NacerCPPg++9.4.0Success3,390
Jul 27, 2024 19:59Joad NacerJoad NacerCPPg++9.4.0Success3,269
Jul 27, 2024 19:59Joad NacerJoad NacerCPPg++9.4.0Success3,414
Jul 27, 2024 19:57Joad NacerJoad NacerCPPg++9.4.0Success3,392
Jul 27, 2024 15:58Joad NacerJoad NacerCPPg++9.4.0Success3,370
Jul 27, 2024 15:05Joad NacerJoad NacerCPPg++9.4.0Success3,367
Jul 27, 2024 15:04Joad NacerJoad NacerCPPg++9.4.0Success3,373
Jul 27, 2024 14:55Joad NacerJoad NacerCPPg++9.4.0Success3,375
Jul 27, 2024 14:55Joad NacerJoad NacerCPPg++9.4.0Success3,432
Jul 27, 2024 14:53Joad NacerJoad NacerCPPg++9.4.0Success3,363
Jul 27, 2024 14:49Joad NacerJoad NacerCPPg++9.4.0Success3,398
Jul 27, 2024 14:49Joad NacerJoad NacerCPPg++9.4.0Success3,381
Jul 27, 2024 14:47Joad NacerJoad NacerCPPg++9.4.0Success3,252+43.20 RP
Jul 27, 2024 14:44Joad NacerJoad NacerCPPg++9.4.0Success3,352
Jul 27, 2024 14:43Joad NacerJoad NacerCPPg++9.4.0Success3,401
Jul 27, 2024 14:43Joad NacerJoad NacerCPPg++9.4.0Success3,275+248.64 RP
Jul 27, 2024 14:41Joad NacerJoad NacerCPPg++9.4.0Success3,414+86.20 RP
Jul 27, 2024 14:41Joad NacerJoad NacerCPPg++9.4.0Success3,492
Jul 27, 2024 14:40Joad NacerJoad NacerCPPg++9.4.0Success3,606
Jul 27, 2024 14:39Joad NacerJoad NacerCPPg++9.4.0Success3,625
Jul 27, 2024 14:37Joad NacerJoad NacerCPPg++9.4.0Success3,474
Jul 27, 2024 14:36Joad NacerJoad NacerCPPg++9.4.0Success3,511
Jul 27, 2024 14:36Joad NacerJoad NacerCPPg++9.4.0Success3,477
Jul 27, 2024 14:23Joad NacerJoad NacerCPPg++9.4.0Success3,472+3.31 RP
Jul 27, 2024 14:23Joad NacerJoad NacerCPPg++9.4.0Success3,476+17.28 RP
Jul 27, 2024 14:22Joad NacerJoad NacerCPPg++9.4.0Success3,501
Jul 27, 2024 14:21Joad NacerJoad NacerCPPg++9.4.0Success3,516
Jul 27, 2024 14:18Joad NacerJoad NacerCPPg++9.4.0Success3,497+45.86 RP
Jul 27, 2024 11:06Joad NacerJoad NacerCPPg++9.4.0Success3,554+1.58 RP
Jul 27, 2024 11:04Joad NacerJoad NacerCPPg++9.4.0Success3,556+24.30 RP
Jul 26, 2024 22:23Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,459
Jul 26, 2024 22:22Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success7,014
Jul 26, 2024 22:21Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success3,602
Jul 26, 2024 22:18Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,458+211.11 RP
Jul 26, 2024 22:10Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,601
Jul 26, 2024 22:09Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,618
Jul 26, 2024 22:08Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,681
Jul 26, 2024 22:07Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,605
Jul 26, 2024 22:06Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success3,773
Jul 26, 2024 22:05Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success4,249
Jul 26, 2024 22:03Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,604
Jul 26, 2024 22:01Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,618
Jul 26, 2024 22:01Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,666
Jul 26, 2024 21:59Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,596
Jul 26, 2024 21:58Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,603
Jul 26, 2024 21:57Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,591
Jul 26, 2024 21:56Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,616
Jul 26, 2024 21:54Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,609
Jul 26, 2024 21:52Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,675
Jul 26, 2024 21:51Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,597
Jul 26, 2024 21:49Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Error
Jul 26, 2024 21:48Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,597
Jul 26, 2024 21:46Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,591+5.42 RP
Jul 26, 2024 21:44Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,689
Jul 26, 2024 21:37Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,600
Jul 26, 2024 21:36Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,598+13.07 RP
Jul 26, 2024 21:35Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,652
Jul 26, 2024 21:34Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success3,644
Jul 26, 2024 21:33Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success3,634
Jul 26, 2024 21:33Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,644
Jul 26, 2024 21:31Yuriy LyfenkoYuriy LyfenkoCPPg++9.4.0Success3,665
Jul 10, 2024 16:44Joad NacerJoad NacerCPPg++9.4.0Success3,624
Jul 10, 2024 16:43Joad NacerJoad NacerCPPclang++10.0.0Success4,580
Jun 24, 2024 20:22Joad NacerJoad NacerCPPg++9.4.0Success3,657
Jun 24, 2024 20:22Joad NacerJoad NacerCPPg++9.4.0Success3,607