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
Jun 24, 2024 20:20Joad NacerJoad NacerCPPg++9.4.0Success3,587+43.18 RP
Jun 24, 2024 20:20Joad NacerJoad NacerCPPg++9.4.0Success3,637
Jun 24, 2024 20:19Joad NacerJoad NacerCPPg++9.4.0Success3,623
Jun 24, 2024 18:40AnSaAnSaCPPg++9.4.0Success4,377
Jun 24, 2024 18:38AnSaAnSaCPPg++9.4.0Success4,357+3.16 RP
Jun 24, 2024 18:23AnSaAnSaCPPg++9.4.0Success4,389
Jun 24, 2024 17:14AnSaAnSaCPPg++9.4.0Success4,364
Jun 24, 2024 17:11AnSaAnSaCPPg++9.4.0Success4,366
Jun 24, 2024 17:00AnSaAnSaCPPg++9.4.0Success4,370
Jun 24, 2024 16:56AnSaAnSaCPPg++9.4.0Success6,390
Jun 24, 2024 16:53AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 18:13AnSaAnSaCPPg++9.4.0Success4,363+136.36 RP
Jun 23, 2024 18:11AnSaAnSaCPPg++9.4.0Success6,414
Jun 23, 2024 18:07AnSaAnSaCPPg++9.4.0Success6,673
Jun 23, 2024 18:02AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 17:55AnSaAnSaCPPg++9.4.0Success6,543
Jun 23, 2024 17:54AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 17:35AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 17:31AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 17:26AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 16:38AnSaAnSaCPPg++9.4.0Success4,639+222.15 RP
Jun 23, 2024 16:30AnSaAnSaCPPg++9.4.0Success6,928
Jun 23, 2024 16:19AnSaAnSaCPPg++9.4.0Success7,215
Jun 23, 2024 16:11AnSaAnSaCPPg++9.4.0Success5,172+5.59 RP
Jun 23, 2024 16:06AnSaAnSaCPPg++9.4.0Success5,349
Jun 23, 2024 16:03AnSaAnSaCPPg++9.4.0Success5,365
Jun 23, 2024 16:01AnSaAnSaCPPg++9.4.0Success5,305
Jun 23, 2024 15:58AnSaAnSaCPPg++9.4.0Success5,528
Jun 23, 2024 15:51AnSaAnSaCPPg++9.4.0Success7,334
Jun 23, 2024 15:46AnSaAnSaCPPg++9.4.0Success7,226
Jun 23, 2024 15:11AnSaAnSaCPPg++9.4.0Success6,742
Jun 23, 2024 14:41AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 14:30AnSaAnSaCPPg++9.4.0Success5,187+620.71 RP
Jun 23, 2024 14:21AnSaAnSaCPPg++9.4.0Success7,650+1.71 RP
Jun 23, 2024 14:18AnSaAnSaCPPg++9.4.0Success7,660+1'108.10 RP
Jun 23, 2024 14:12AnSaAnSaCPPclang++10.0.0Success50,664+89.71 RP
Jun 23, 2024 14:09AnSaAnSaCPPg++9.4.0Success92,874+107.67 RP
Jun 23, 2024 14:07AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 14:01AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 13:58AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 13:43AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 13:41AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 12:18AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 12:14AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 12:11AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 11:56AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 11:45AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 11:40AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 11:23AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 11:05AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 10:59AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 10:49AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 10:48AnSaAnSaCPPg++9.4.0Error
Jun 23, 2024 10:46AnSaAnSaCPPg++9.4.0Error
May 22, 2024 18:02Joad NacerJoad NacerCPPclang++10.0.0Success4,564
May 22, 2024 17:54Joad NacerJoad NacerCPPg++9.4.0Error
May 22, 2024 17:51Joad NacerJoad NacerCPPg++9.4.0Success3,621
May 22, 2024 17:51Joad NacerJoad NacerCPPg++9.4.0Success3,617
May 22, 2024 12:00Joad NacerJoad NacerCPPg++9.4.0Success3,615+7.63 RP
May 22, 2024 11:54Joad NacerJoad NacerCPPg++9.4.0Success3,669
May 22, 2024 11:50Joad NacerJoad NacerCPPg++9.4.0Success3,625+17.39 RP
May 22, 2024 11:25Joad NacerJoad NacerCPPg++9.4.0Success3,665
May 22, 2024 08:51Joad NacerJoad NacerCPPg++9.4.0Success3,716
May 22, 2024 01:50Joad NacerJoad NacerCPPg++9.4.0Success3,668
May 22, 2024 01:47Joad NacerJoad NacerCPPg++9.4.0Success3,669
May 22, 2024 01:47Joad NacerJoad NacerCPPg++9.4.0Success3,660
May 22, 2024 01:26Joad NacerJoad NacerCPPg++9.4.0Success3,764
May 22, 2024 01:22Joad NacerJoad NacerCPPg++9.4.0Success4,624
May 22, 2024 01:15Joad NacerJoad NacerCPPg++9.4.0Success3,672
May 22, 2024 01:13Joad NacerJoad NacerCPPg++9.4.0Error
May 22, 2024 01:12Joad NacerJoad NacerCPPg++9.4.0Error
May 22, 2024 01:07Joad NacerJoad NacerCPPg++9.4.0Success3,670
May 22, 2024 01:05Joad NacerJoad NacerCPPg++9.4.0Success3,648+3.00 RP
May 22, 2024 01:04Joad NacerJoad NacerCPPg++9.4.0Success3,728
May 22, 2024 01:01Joad NacerJoad NacerCPPg++9.4.0Success3,660
May 22, 2024 00:58Joad NacerJoad NacerCPPg++9.4.0Success3,686
May 22, 2024 00:56Joad NacerJoad NacerCPPg++9.4.0Success3,754
May 22, 2024 00:45Joad NacerJoad NacerCPPg++9.4.0Success3,835
May 22, 2024 00:42Joad NacerJoad NacerCPPg++9.4.0Success3,725
May 22, 2024 00:40Joad NacerJoad NacerCPPg++9.4.0Success4,268
May 22, 2024 00:39Joad NacerJoad NacerCPPg++9.4.0Success3,785
May 22, 2024 00:33Joad NacerJoad NacerCPPg++9.4.0Success3,660
May 22, 2024 00:32Joad NacerJoad NacerCPPg++9.4.0Success3,656
May 22, 2024 00:29Joad NacerJoad NacerCPPg++9.4.0Success3,870
May 22, 2024 00:25Joad NacerJoad NacerCPPg++9.4.0Success3,782
May 22, 2024 00:23Joad NacerJoad NacerCPPg++9.4.0Success3,947
May 22, 2024 00:14Joad NacerJoad NacerCPPg++9.4.0Success3,661
May 22, 2024 00:12Joad NacerJoad NacerCPPg++9.4.0Error
May 22, 2024 00:11Joad NacerJoad NacerCPPg++9.4.0Success3,791
May 22, 2024 00:09Joad NacerJoad NacerCPPg++9.4.0Success3,804
May 22, 2024 00:09Joad NacerJoad NacerCPPg++9.4.0Success3,676
May 22, 2024 00:05Joad NacerJoad NacerCPPg++9.4.0Success3,972
May 22, 2024 00:03Joad NacerJoad NacerCPPg++9.4.0Success3,681
May 21, 2024 23:55Joad NacerJoad NacerCPPg++9.4.0Success3,910
May 21, 2024 23:54Joad NacerJoad NacerCPPg++9.4.0Error
May 21, 2024 23:54Joad NacerJoad NacerCPPg++9.4.0Error
May 21, 2024 23:47Joad NacerJoad NacerCPPg++9.4.0Success3,664
May 21, 2024 23:46Joad NacerJoad NacerCPPg++9.4.0Success4,205
May 21, 2024 23:44Joad NacerJoad NacerCPPg++9.4.0Success3,684
May 21, 2024 23:42Joad NacerJoad NacerCPPg++9.4.0Success3,725