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 21, 2026 19:37Josu San MartinJosu San MartinCPPg++13.3.0Error
Mar 21, 2026 19:22Dominique GarmierDominique GarmierGOgo1.26.1Success16,982
Mar 21, 2026 17:40Dominique GarmierDominique GarmierRUSTrust-1.94.0Success7,371
Mar 21, 2026 17:38Dominique GarmierDominique GarmierRUSTrust-1.94.0Success7,583
Mar 21, 2026 17:36Dominique GarmierDominique GarmierRUSTrust-1.94.0Success7,567
Mar 21, 2026 17:34Dominique GarmierDominique GarmierRUSTrust-1.94.0Success7,485
Mar 21, 2026 17:28Dominique GarmierDominique GarmierRUSTrust-1.94.0Success10,101
Mar 21, 2026 17:27Dominique GarmierDominique GarmierRUSTrust-1.94.0Success10,355
Mar 21, 2026 17:24Dominique GarmierDominique GarmierRUSTrust-1.94.0Success11,069
Mar 21, 2026 17:22Dominique GarmierDominique GarmierRUSTrust-1.94.0Success13,352
Mar 21, 2026 16:25Dominique GarmierDominique GarmierRUSTrust-1.94.0Success52,908
Mar 21, 2026 16:22Dominique GarmierDominique GarmierRUSTrust-1.94.0Success53,942
Mar 21, 2026 16:17Dominique GarmierDominique GarmierRUSTrust-1.94.0Success95,508
Mar 21, 2026 16:00Dominique GarmierDominique GarmierRUSTrust-1.94.0Success95,810
Mar 21, 2026 15:53Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 15:22Dominique GarmierDominique GarmierRUSTrust-1.94.0Success1,024,165
Mar 21, 2026 15:21Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 15:19Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 15:17Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 15:14Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 15:12Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 14:53Josu San MartinJosu San MartinCPPg++13.3.0Success3,933+0.65 RP
Mar 21, 2026 13:47Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 13:43Dominique GarmierDominique GarmierRUSTrust-1.94.0Error
Mar 21, 2026 11:52olliecrowolliecrowZIG0.14.0Success7,288+106.46 RP
Mar 21, 2026 11:33olliecrowolliecrowRUSTrust-1.94.0Success9,654
Mar 21, 2026 11:32olliecrowolliecrowCPPclang++18.1.3Success5,163
Mar 21, 2026 11:28olliecrowolliecrowCPPclang++18.1.3Success5,206
Mar 21, 2026 10:49Dominique GarmierDominique GarmierCSHARP9.0.14Error
Mar 21, 2026 10:02Dominique GarmierDominique GarmierZIG0.13.0Success1,535,774
Mar 21, 2026 09:34Dominique GarmierDominique GarmierZIG0.13.0Error
Mar 21, 2026 04:13olliecrowolliecrowZIG0.14.0Success8,341
Mar 21, 2026 04:10olliecrowolliecrowGOgo1.26.1Success5,634+874.36 RP
Mar 21, 2026 02:09Dominique GarmierDominique GarmierCPPclang++18.1.3Success11,600
Mar 21, 2026 01:20Dominique GarmierDominique GarmierCPPclang++18.1.3Success10,688
Mar 20, 2026 19:46Dominique GarmierDominique GarmierGOgo1.26.1Success862,521
Mar 20, 2026 15:01olliecrowolliecrowZIG0.14.0Success7,901+8.91 RP
Mar 20, 2026 14:38olliecrowolliecrowZIG0.14.0Success8,112
Mar 20, 2026 14:23olliecrowolliecrowZIG0.14.0Success7,957+61.01 RP
Mar 20, 2026 14:07olliecrowolliecrowZIG0.14.0Success9,789
Mar 20, 2026 14:04olliecrowolliecrowZIG0.14.0Success8,363+958.37 RP
Mar 20, 2026 13:58olliecrowolliecrowZIG0.14.0Success42,128
Mar 20, 2026 11:31Dominique GarmierDominique GarmierCPPg++13.3.0Success9,526
Mar 20, 2026 05:59olliecrowolliecrowCPPg++10.5.0Success4,335+1.60 RP
Mar 20, 2026 05:58olliecrowolliecrowZIG0.14.0Error
Mar 20, 2026 05:51olliecrowolliecrowCPPg++10.5.0Success4,476
Mar 20, 2026 05:45olliecrowolliecrowCPPg++10.5.0Success4,338+9.53 RP
Mar 20, 2026 05:42olliecrowolliecrowCPPg++10.5.0Success4,380
Mar 20, 2026 05:38olliecrowolliecrowCPPg++10.5.0Success4,486
Mar 20, 2026 05:29olliecrowolliecrowCPPg++10.5.0Success4,356+13.62 RP
Mar 20, 2026 05:25olliecrowolliecrowCPPg++10.5.0Success4,382+4.16 RP
Mar 20, 2026 05:21olliecrowolliecrowCPPclang++Success4,920
Mar 20, 2026 05:17olliecrowolliecrowCPPg++10.5.0Success4,413
Mar 20, 2026 05:14olliecrowolliecrowCPPg++10.5.0Success4,436
Mar 20, 2026 05:10olliecrowolliecrowCPPg++10.5.0Success4,418
Mar 20, 2026 04:55olliecrowolliecrowCPPg++13.3.0Success4,524
Mar 20, 2026 04:50olliecrowolliecrowCPPg++13.3.0Error
Mar 20, 2026 04:42olliecrowolliecrowCPPg++13.3.0Success5,708
Mar 20, 2026 04:33olliecrowolliecrowCPPg++13.3.0Success5,099
Mar 20, 2026 04:18olliecrowolliecrowCPPg++13.3.0Success4,498
Mar 20, 2026 04:11olliecrowolliecrowCPPg++13.3.0Success4,390+16.48 RP
Mar 20, 2026 04:10olliecrowolliecrowCPPclang++18.1.3Success4,914
Mar 20, 2026 04:09olliecrowolliecrowCPPclang++18.1.3Success4,908
Mar 20, 2026 04:04olliecrowolliecrowCPPg++13.3.0Success4,501
Mar 20, 2026 04:02olliecrowolliecrowCPPg++13.3.0Success4,433
Mar 20, 2026 04:00olliecrowolliecrowCPPg++13.3.0Success5,244
Mar 20, 2026 03:57olliecrowolliecrowCPPg++13.3.0Success4,422+54.40 RP
Mar 20, 2026 03:54olliecrowolliecrowCPPg++13.3.0Success4,548
Mar 20, 2026 03:53olliecrowolliecrowCPPg++13.3.0Success5,160
Mar 20, 2026 03:51olliecrowolliecrowCPPg++13.3.0Success4,647
Mar 20, 2026 03:48olliecrowolliecrowCPPg++13.3.0Success8,090
Mar 20, 2026 03:46olliecrowolliecrowCPPg++13.3.0Success4,960
Mar 20, 2026 03:43olliecrowolliecrowCPPg++13.3.0Success4,863
Mar 20, 2026 03:40olliecrowolliecrowCPPg++13.3.0Success4,913
Mar 20, 2026 03:32olliecrowolliecrowCPPclang++18.1.3Success5,833
Mar 20, 2026 03:29olliecrowolliecrowCPPclang++18.1.3Success5,899
Mar 20, 2026 03:26olliecrowolliecrowCPPclang++18.1.3Success6,096
Mar 20, 2026 03:25olliecrowolliecrowCPPclang++18.1.3Success6,381
Mar 20, 2026 03:23olliecrowolliecrowCPPclang++18.1.3Success6,423
Mar 20, 2026 03:21olliecrowolliecrowCPPclang++18.1.3Success5,422
Mar 20, 2026 03:16olliecrowolliecrowCPPclang++18.1.3Success5,290
Mar 20, 2026 03:13olliecrowolliecrowCPPclang++18.1.3Success4,916
Mar 20, 2026 03:08Dominique GarmierDominique GarmierCPPclang++18.1.3Success7,312
Mar 20, 2026 03:06olliecrowolliecrowCPPclang++18.1.3Success6,346
Mar 20, 2026 03:01olliecrowolliecrowCPPclang++18.1.3Success6,815
Mar 20, 2026 02:58olliecrowolliecrowCPPclang++18.1.3Success6,615
Mar 20, 2026 02:54olliecrowolliecrowCPPclang++18.1.3Success6,622
Mar 20, 2026 02:53olliecrowolliecrowCPPclang++18.1.3Success9,308
Mar 20, 2026 02:44olliecrowolliecrowCPPclang++18.1.3Success6,881
Mar 20, 2026 02:43olliecrowolliecrowCPPclang++18.1.3Error
Mar 20, 2026 00:39olliecrowolliecrowCPPclang++18.1.3Success4,531+5.83 RP
Mar 20, 2026 00:36olliecrowolliecrowCPPclang++18.1.3Success4,620
Mar 20, 2026 00:21olliecrowolliecrowCPPclang++18.1.3Success8,810
Mar 20, 2026 00:19olliecrowolliecrowCPPclang++18.1.3Success4,543+481.20 RP
Mar 20, 2026 00:07olliecrowolliecrowCPPclang++18.1.3Success8,130
Mar 19, 2026 23:55olliecrowolliecrowCPPclang++18.1.3Success6,903
Mar 19, 2026 23:49olliecrowolliecrowCPPclang++18.1.3Success6,768
Mar 19, 2026 23:46olliecrowolliecrowCPPclang++18.1.3Success6,783
Mar 19, 2026 23:05olliecrowolliecrowCPPclang++18.1.3Success5,814+473.10 RP
Mar 19, 2026 23:02olliecrowolliecrowCPPclang++18.1.3Success10,653