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
Mar 19, 2026 13:54Dominique GarmierDominique GarmierCPPg++13.3.0Success21,981
Mar 19, 2026 02:22Dominique GarmierDominique GarmierCPPg++13.3.0Success12,713
Mar 19, 2026 02:22Dominique GarmierDominique GarmierCPPg++13.3.0Success8,063
Mar 19, 2026 00:22Dominique GarmierDominique GarmierCPPg++13.3.0Success8,199
Mar 19, 2026 00:04Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,148+0.20 RP
Mar 18, 2026 23:43Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,149+85.60 RP
Mar 17, 2026 14:56Dominique GarmierDominique GarmierCPPg++13.3.0Success7,827
Mar 17, 2026 10:26Dominique GarmierDominique GarmierCPPclang++18.1.3Success8,029
Mar 17, 2026 10:18Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,995
Mar 17, 2026 10:15Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,615+25.20 RP
Mar 17, 2026 10:10Dominique GarmierDominique GarmierCPPclang++18.1.3Success8,769
Mar 17, 2026 10:08Dominique GarmierDominique GarmierCPPclang++18.1.3Success9,472
Mar 17, 2026 10:06Dominique GarmierDominique GarmierCPPclang++18.1.3Success9,243
Mar 17, 2026 10:03Dominique GarmierDominique GarmierCPPg++13.3.0Success12,097
Mar 17, 2026 09:58Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,764+0.17 RP
Mar 17, 2026 09:56Dominique GarmierDominique GarmierCPPclang++18.1.3Success8,652
Mar 17, 2026 09:52Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,765+0.50 RP
Mar 17, 2026 09:49Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,768+7.91 RP
Mar 17, 2026 09:49Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,885
Mar 17, 2026 09:44Dominique GarmierDominique GarmierCPPclang++18.1.3Success9,900
Mar 17, 2026 09:41Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,816+262.55 RP
Mar 17, 2026 09:39Dominique GarmierDominique GarmierCPPclang++18.1.3Error
Mar 17, 2026 09:33Dominique GarmierDominique GarmierCPPclang++18.1.3Success9,924
Mar 17, 2026 09:30Dominique GarmierDominique GarmierCPPg++13.3.0Success12,337
Mar 17, 2026 09:27Dominique GarmierDominique GarmierCPPg++13.3.0Success11,947
Mar 17, 2026 09:27Dominique GarmierDominique GarmierCPPg++13.3.0Success12,154
Mar 17, 2026 09:18Dominique GarmierDominique GarmierCPPg++13.3.0Success11,317
Mar 16, 2026 17:56Dominique GarmierDominique GarmierCPPg++13.3.0Success11,265
Mar 16, 2026 14:40Dominique GarmierDominique GarmierCPPclang++18.1.3Success9,834+91.30 RP
Mar 16, 2026 14:27Dominique GarmierDominique GarmierCPPclang++18.1.3Error
Mar 16, 2026 11:08Dominique GarmierDominique GarmierCPPclang++18.1.3Success11,696
Mar 16, 2026 11:06Dominique GarmierDominique GarmierCPPclang++18.1.3Error
Mar 16, 2026 11:05Dominique GarmierDominique GarmierCPPclang++18.1.3Success10,804+100.36 RP
Mar 16, 2026 11:03Dominique GarmierDominique GarmierCPPclang++18.1.3Error
Mar 16, 2026 11:01Dominique GarmierDominique GarmierCPPclang++18.1.3Success12,118+18.18 RP
Mar 16, 2026 10:58Dominique GarmierDominique GarmierCPPclang++18.1.3Success12,391+1.75 RP
Mar 16, 2026 10:55Dominique GarmierDominique GarmierCPPclang++18.1.3Success12,418+82.37 RP
Mar 16, 2026 10:52Dominique GarmierDominique GarmierCPPclang++18.1.3Success16,882
Mar 15, 2026 14:14Dominique GarmierDominique GarmierCPPclang++18.1.3Success13,833+55.04 RP
Mar 15, 2026 11:02Dominique GarmierDominique GarmierCPPg++13.3.0Success20,638
Mar 13, 2026 17:41KeefeKeefeCPPg++13.3.0Error
Mar 13, 2026 16:57KeefeKeefeCPPg++13.3.0Error
Mar 13, 2026 16:13KeefeKeefeCPPclang++18.1.3Success6,302
Mar 13, 2026 16:08KeefeKeefeCPPg++13.3.0Success6,079+1'074.62 RP
Mar 13, 2026 12:33Dominique GarmierDominique GarmierCPPg++13.3.0Success14,973+273.69 RP
Mar 13, 2026 12:05Dominique GarmierDominique GarmierCPPg++13.3.0Success25,369+394.18 RP
Mar 13, 2026 11:46Dominique GarmierDominique GarmierGOgo1.26.1Error
Mar 11, 2026 00:02Josu San MartinJosu San MartinCPPg++13.3.0Success3,934+8.37 RP
Mar 10, 2026 23:11Josu San MartinJosu San MartinCPPg++13.3.0Error
Mar 10, 2026 22:48Josu San MartinJosu San MartinCPPg++13.3.0Success3,947+11.50 RP
Mar 10, 2026 21:23Josu San MartinJosu San MartinCPPg++13.3.0Success4,031
Mar 10, 2026 21:15Josu San MartinJosu San MartinCPPg++13.3.0Success4,419
Mar 10, 2026 20:40Josu San MartinJosu San MartinCPPg++13.3.0Success4,020
Mar 10, 2026 20:33Josu San MartinJosu San MartinCPPg++13.3.0Success3,970
Mar 10, 2026 20:22Josu San MartinJosu San MartinCPPg++13.3.0Success3,965+4.44 RP
Mar 10, 2026 20:11Josu San MartinJosu San MartinCPPg++13.3.0Success4,014
Mar 10, 2026 19:25Josu San MartinJosu San MartinCPPg++13.3.0Success3,972+33.15 RP
Mar 10, 2026 18:55Josu San MartinJosu San MartinCPPg++13.3.0Success4,025+16.55 RP
Mar 10, 2026 18:15Josu San MartinJosu San MartinCPPg++13.3.0Success4,052+1.83 RP
Mar 10, 2026 18:08Josu San MartinJosu San MartinCPPg++13.3.0Success4,055+3.64 RP
Mar 10, 2026 17:44Josu San MartinJosu San MartinCPPg++13.3.0Success4,097
Mar 10, 2026 16:39Josu San MartinJosu San MartinCPPg++13.3.0Success4,067
Mar 10, 2026 16:22Josu San MartinJosu San MartinCPPg++13.3.0Success4,061+20.45 RP
Mar 10, 2026 15:29Josu San MartinJosu San MartinCPPg++13.3.0Success4,102
Mar 10, 2026 15:04Josu San MartinJosu San MartinCPPg++13.3.0Success4,095+7.73 RP
Mar 10, 2026 05:27olliecrowolliecrowRUSTrust-1.93.0Success8,876
Mar 10, 2026 05:22olliecrowolliecrowRUSTrust-1.93.0Success8,809
Mar 10, 2026 04:49Josu San MartinJosu San MartinCPPg++13.3.0Success4,109
Mar 10, 2026 04:40Josu San MartinJosu San MartinCPPg++13.3.0Error
Mar 10, 2026 04:35Josu San MartinJosu San MartinCPPg++13.3.0Error
Mar 10, 2026 04:22Josu San MartinJosu San MartinCPPg++13.3.0Success4,108+10.62 RP
Mar 10, 2026 04:21olliecrowolliecrowCPPclang++18.1.3Error
Mar 10, 2026 04:16olliecrowolliecrowCPPclang++18.1.3Success8,020+28.41 RP
Mar 10, 2026 02:07Josu San MartinJosu San MartinCPPg++13.3.0Success4,138
Mar 10, 2026 01:33Josu San MartinJosu San MartinCPPg++13.3.0Success4,187
Mar 10, 2026 01:28Josu San MartinJosu San MartinCPPg++13.3.0Success4,306
Mar 10, 2026 01:12Josu San MartinJosu San MartinCPPg++13.3.0Success4,146
Mar 10, 2026 00:56Josu San MartinJosu San MartinCPPg++13.3.0Success4,126+9.36 RP
Mar 10, 2026 00:08Josu San MartinJosu San MartinCPPg++13.3.0Success4,425
Mar 4, 2026 06:30olliecrowolliecrowCPPclang++18.1.3Success8,222
Mar 4, 2026 06:24olliecrowolliecrowCPPclang++18.1.3Success8,232
Mar 4, 2026 06:17olliecrowolliecrowCPPclang++18.1.3Success8,207+0.89 RP
Mar 4, 2026 06:06olliecrowolliecrowCPPclang++18.1.3Success8,238
Mar 4, 2026 06:01olliecrowolliecrowCPPclang++18.1.3Success8,221
Mar 4, 2026 05:56olliecrowolliecrowCPPclang++18.1.3Success8,213+6.05 RP
Mar 4, 2026 05:50olliecrowolliecrowCPPclang++18.1.3Success8,254+5.26 RP
Mar 4, 2026 05:38olliecrowolliecrowCPPclang++18.1.3Success8,290
Mar 4, 2026 05:35olliecrowolliecrowCPPclang++18.1.3Success8,391
Mar 4, 2026 05:30olliecrowolliecrowCPPclang++18.1.3Success8,457
Mar 4, 2026 05:12olliecrowolliecrowCPPclang++18.1.3Success8,290+0.44 RP
Mar 4, 2026 05:07olliecrowolliecrowCPPclang++18.1.3Success8,373
Mar 4, 2026 04:49olliecrowolliecrowCPPclang++18.1.3Success16,962
Mar 4, 2026 04:40olliecrowolliecrowCPPclang++18.1.3Success8,296
Mar 4, 2026 04:34olliecrowolliecrowCPPclang++18.1.3Success9,568
Mar 4, 2026 04:28olliecrowolliecrowCPPclang++18.1.3Success8,293+1.89 RP
Mar 4, 2026 04:08olliecrowolliecrowCPPclang++18.1.3Success8,306+144.96 RP
Mar 4, 2026 03:52olliecrowolliecrowCPPclang++18.1.3Success9,443+35.76 RP
Mar 4, 2026 03:46olliecrowolliecrowCPPclang++18.1.3Success9,773+3.13 RP
Mar 4, 2026 03:39olliecrowolliecrowCPPclang++18.1.3Success9,803+82.19 RP
Mar 4, 2026 03:27olliecrowolliecrowCPPclang++18.1.3Success11,253