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
May 6, 2026 11:00olliecrowolliecrowCPPg++13.3.0Success4,135+25.46 RP
May 6, 2026 06:28olliecrowolliecrowCPPg++13.3.0Success4,222
May 5, 2026 23:03olliecrowolliecrowCPPg++13.3.0Success4,469
May 5, 2026 07:48Victor MerckléVictor MerckléCPPg++14.2.0Error
May 5, 2026 07:07Victor MerckléVictor MerckléCSHARP10.0.7Success3,440+797.27 RP
May 5, 2026 06:57olliecrowolliecrowCPPg++13.3.0Success4,205
May 5, 2026 06:43Victor MerckléVictor MerckléCPPg++14.2.0Success10,031
May 5, 2026 06:40Victor MerckléVictor MerckléGOgo1.26.2Success3,430+1'140.51 RP
May 5, 2026 06:21Victor MerckléVictor MerckléZIG0.16.0Success3,222
May 5, 2026 06:16Victor MerckléVictor MerckléZIG0.16.0Success3,142+1'239.81 RP
May 5, 2026 06:09Victor MerckléVictor MerckléZIG0.16.0Error
May 5, 2026 05:53olliecrowolliecrowCPPg++13.3.0Success4,222
May 5, 2026 04:15olliecrowolliecrowCSHARP9.0.15Success10,010
May 5, 2026 03:03olliecrowolliecrowCPPg++13.3.0Success4,179+4.00 RP
May 5, 2026 02:39olliecrowolliecrowCPPg++14.2.0Success4,328
May 5, 2026 01:36olliecrowolliecrowCPPg++13.3.0Success4,308
May 4, 2026 19:51Victor MerckléVictor MerckléRUSTrust-1.95.0Success3,140+833.39 RP
May 4, 2026 19:44Victor MerckléVictor MerckléCPPg++14.2.0Success3,175
May 4, 2026 06:21Victor MerckléVictor MerckléCPPg++14.2.0Success3,161+124.97 RP
May 3, 2026 18:47TudyMTudyMCPPclang++20.1.2Success8,472
May 3, 2026 18:41TudyMTudyMCPPclang++20.1.2Success8,354+2.57 RP
May 3, 2026 18:34TudyMTudyMCPPclang++20.1.2Success8,402
May 3, 2026 18:27TudyMTudyMCPPclang++20.1.2Success8,378
May 3, 2026 18:20TudyMTudyMCPPclang++20.1.2Success8,376
May 3, 2026 18:14TudyMTudyMCPPclang++20.1.2Success8,374
May 3, 2026 18:07TudyMTudyMCPPclang++20.1.2Success8,388
May 3, 2026 17:59TudyMTudyMCPPclang++20.1.2Success8,512
May 3, 2026 17:52TudyMTudyMCPPclang++20.1.2Success8,372+22.12 RP
May 3, 2026 17:45TudyMTudyMCPPclang++20.1.2Success8,557
May 3, 2026 17:39TudyMTudyMCPPclang++20.1.2Success8,579
May 3, 2026 17:32TudyMTudyMCPPclang++20.1.2Success8,530+1.92 RP
May 3, 2026 17:25TudyMTudyMCPPclang++20.1.2Success8,567
May 3, 2026 17:19TudyMTudyMCPPclang++20.1.2Success8,544+2.19 RP
May 3, 2026 17:12TudyMTudyMCPPclang++20.1.2Success8,734
May 3, 2026 17:06TudyMTudyMCPPclang++20.1.2Success8,574
May 3, 2026 16:56TudyMTudyMCPPclang++20.1.2Success8,582
May 3, 2026 16:45TudyMTudyMCPPclang++20.1.2Success8,574
May 3, 2026 16:35TudyMTudyMCPPclang++20.1.2Success8,660
May 3, 2026 16:24TudyMTudyMCPPclang++20.1.2Success8,560+11.22 RP
May 3, 2026 16:08TudyMTudyMCPPclang++20.1.2Success8,660
May 3, 2026 15:59Victor MerckléVictor MerckléCPPg++14.2.0Success3,291+614.94 RP
May 3, 2026 15:56TudyMTudyMCPPclang++20.1.2Success8,643+10.35 RP
May 3, 2026 15:45TudyMTudyMCPPclang++20.1.2Success9,257
May 3, 2026 15:34TudyMTudyMCPPclang++20.1.2Success8,849
May 3, 2026 15:22TudyMTudyMCPPg++10.5.0Success12,826
May 3, 2026 15:11TudyMTudyMCPPclang++20.1.2Success8,746
May 3, 2026 15:01TudyMTudyMCPPclang++20.1.2Success8,721+263.66 RP
May 3, 2026 14:51TudyMTudyMCPPg++14.2.0Success11,345
May 3, 2026 14:41TudyMTudyMCPPg++14.2.0Success11,325+39.97 RP
May 3, 2026 14:29TudyMTudyMCPPg++14.2.0Success12,139
May 3, 2026 14:23TudyMTudyMCPPg++14.2.0Success12,106
May 3, 2026 13:50TudyMTudyMCPPg++14.2.0Success11,862+137.21 RP
May 1, 2026 11:45Victor MerckléVictor MerckléCPPg++14.2.0Success4,974
May 1, 2026 11:31Victor MerckléVictor MerckléCPPg++14.2.0Success7,476
May 1, 2026 11:17Victor MerckléVictor MerckléCPPg++14.2.0Success4,126+46.10 RP
May 1, 2026 09:51Victor MerckléVictor MerckléCPPg++14.2.0Success4,206+50.89 RP
May 1, 2026 06:28olliecrowolliecrowCPPg++10.5.0Success6,504
May 1, 2026 02:23Charles CabergsCharles CabergsCPPclang++19.1.1Success4,051
Apr 30, 2026 23:12Charles CabergsCharles CabergsCPPclang++18.1.3Success3,978+12.58 RP
Apr 30, 2026 18:11Charles CabergsCharles CabergsCPPg++14.2.0Success4,067
Apr 30, 2026 15:34Charles CabergsCharles CabergsCPPg++14.2.0Success4,252
Apr 30, 2026 13:07Charles CabergsCharles CabergsCPPg++14.2.0Success4,021
Apr 30, 2026 05:09Charles CabergsCharles CabergsCPPg++14.2.0Success4,007
Apr 30, 2026 04:29olliecrowolliecrowCSHARP9.0.15Success5,753
Apr 30, 2026 04:04olliecrowolliecrowCPPg++10.5.0Success5,293
Apr 29, 2026 23:58Charles CabergsCharles CabergsCPPg++13.3.0Success4,005
Apr 29, 2026 21:29Charles CabergsCharles CabergsCPPg++14.2.0Success3,998+12.45 RP
Apr 29, 2026 15:57Charles CabergsCharles CabergsCPPg++14.2.0Success4,018+28.17 RP
Apr 29, 2026 13:12TudyMTudyMCPPg++14.2.0Success14,168+23.27 RP
Apr 29, 2026 12:52TudyMTudyMCPPg++14.2.0Success14,973
Apr 29, 2026 12:48TudyMTudyMCPPg++14.2.0Success15,213
Apr 29, 2026 12:44TudyMTudyMCPPg++14.2.0Success14,795
Apr 29, 2026 00:10Charles CabergsCharles CabergsCPPg++14.2.0Success4,064+17.43 RP
Apr 28, 2026 21:45Charles CabergsCharles CabergsCPPg++13.3.0Success4,093+53.14 RP
Apr 28, 2026 19:03Charles CabergsCharles CabergsCPPg++13.3.0Success4,184+8.54 RP
Apr 28, 2026 16:28Charles CabergsCharles CabergsCPPg++13.3.0Success4,200
Apr 28, 2026 13:59Charles CabergsCharles CabergsCPPg++13.3.0Success4,204
Apr 28, 2026 10:16TudyMTudyMCPPg++14.2.0Success14,651+0.61 RP
Apr 28, 2026 10:11TudyMTudyMCPPg++14.2.0Success14,664+77.42 RP
Apr 28, 2026 10:07TudyMTudyMCPPg++14.2.0Success16,542+0.33 RP
Apr 28, 2026 10:04TudyMTudyMCPPg++14.2.0Success17,273
Apr 28, 2026 09:59TudyMTudyMCPPg++14.2.0Success16,551+49.01 RP
Apr 28, 2026 09:57TudyMTudyMCPPg++10.5.0Success18,012+197.95 RP
Apr 28, 2026 09:54TudyMTudyMCPPg++10.5.0Error
Apr 28, 2026 08:28Victor MerckléVictor MerckléCPPg++14.2.0Success4,298+419.36 RP
Apr 28, 2026 05:12Victor MerckléVictor MerckléCPPg++14.2.0Success5,243+1'747.47 RP
Apr 28, 2026 05:11Charles CabergsCharles CabergsCPPg++13.3.0Success4,210
Apr 28, 2026 02:53Charles CabergsCharles CabergsCPPg++13.3.0Success4,246
Apr 28, 2026 00:54Charles CabergsCharles CabergsCPPg++13.3.0Success4,199+61.87 RP
Apr 27, 2026 20:40Victor MerckléVictor MerckléCPPg++14.2.0Success63,401
Apr 27, 2026 20:35Victor MerckléVictor MerckléCPPg++14.2.0Success64,028
Apr 27, 2026 20:22Victor MerckléVictor MerckléCPPg++14.2.0Success62,566+159.83 RP
Apr 27, 2026 20:15Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 20:08Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 20:05Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 20:02Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:56Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:41Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:36Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:32Victor MerckléVictor MerckléCPPg++14.2.0Error