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 18, 2026 06:19M-RochatM-RochatCPPg++14.2.0Success5,530
May 18, 2026 06:11M-RochatM-RochatCPPg++14.2.0Success6,019
May 18, 2026 06:07M-RochatM-RochatCPPg++14.2.0Success5,668
May 18, 2026 06:02M-RochatM-RochatCPPg++14.2.0Success5,462+204.55 RP
May 18, 2026 06:01M-RochatM-RochatCPPg++14.2.0Success6,149
May 18, 2026 05:48M-RochatM-RochatCPPg++14.2.0Success6,730
May 18, 2026 05:47M-RochatM-RochatCPPg++14.2.0Success6,149+180.15 RP
May 18, 2026 05:42M-RochatM-RochatCPPg++14.2.0Success6,974
May 18, 2026 05:36M-RochatM-RochatCPPg++14.2.0Success7,337
May 18, 2026 05:35M-RochatM-RochatCPPg++14.2.0Success8,521
May 18, 2026 05:23M-RochatM-RochatCPPg++14.2.0Success6,934
May 18, 2026 05:23M-RochatM-RochatCPPg++14.2.0Success6,930
May 18, 2026 04:54M-RochatM-RochatCPPg++13.2.0Success7,068
May 18, 2026 04:54M-RochatM-RochatCPPg++14.2.0Success6,915+25.07 RP
May 18, 2026 04:48M-RochatM-RochatCPPg++13.2.0Success7,037+183.59 RP
May 17, 2026 23:56M-RochatM-RochatCPPg++13.2.0Success8,200
May 17, 2026 23:37M-RochatM-RochatCPPg++13.2.0Success8,081+122.39 RP
May 17, 2026 08:22M-RochatM-RochatCPPg++13.2.0Success9,010
May 17, 2026 06:45olliecrowolliecrowRUSTrust-1.94.0Success9,280
May 17, 2026 03:11M-RochatM-RochatCPPg++14.2.0Success9,461
May 17, 2026 02:36M-RochatM-RochatCPPg++13.2.0Success8,968+3.22 RP
May 17, 2026 02:30M-RochatM-RochatCPPg++13.2.0Success9,010
May 17, 2026 02:29M-RochatM-RochatCPPg++13.2.0Success8,994+0.37 RP
May 17, 2026 00:53M-RochatM-RochatCPPg++13.2.0Success8,997+0.86 RP
May 16, 2026 22:57M-RochatM-RochatCPPg++13.2.0Success13,708
May 16, 2026 22:45M-RochatM-RochatCPPg++14.2.0Success9,502
May 16, 2026 22:37M-RochatM-RochatCPPg++13.2.0Success9,004+88.44 RP
May 16, 2026 22:30M-RochatM-RochatCPPg++13.2.0Success10,442
May 16, 2026 22:24M-RochatM-RochatCPPg++13.2.0Success9,783+210.76 RP
May 16, 2026 22:18M-RochatM-RochatCPPg++13.2.0Success12,346
May 16, 2026 22:02M-RochatM-RochatCPPg++13.2.0Success12,324+176.63 RP
May 16, 2026 21:35M-RochatM-RochatCPPg++13.2.0Success15,753+7.05 RP
May 16, 2026 21:30M-RochatM-RochatCPPg++13.2.0Success15,930+1.02 RP
May 16, 2026 21:19M-RochatM-RochatCPPg++14.2.0Success15,987
May 16, 2026 21:18M-RochatM-RochatCPPclang++18.1.3Success19,062+92.55 RP
May 16, 2026 21:18M-RochatM-RochatCPPg++13.2.0Success15,956+102.12 RP
May 16, 2026 18:21olliecrowolliecrowCSHARP9.0.15Success5,247
May 16, 2026 08:07Josu San MartinJosu San MartinCPPg++14.2.0Success9,601
May 16, 2026 07:49Josu San MartinJosu San MartinCPPg++14.2.0Success22,217
May 16, 2026 07:43Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 07:35Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 07:22Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 07:03M-RochatM-RochatCPPg++13.2.0Success23,145+68.45 RP
May 16, 2026 05:11Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 05:03Josu San MartinJosu San MartinCPPg++14.2.0Success14,415
May 16, 2026 04:55Josu San MartinJosu San MartinCPPg++14.2.0Success12,966
May 16, 2026 04:50Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 04:41Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 04:38Josu San MartinJosu San MartinCPPg++14.2.0Success3,953
May 16, 2026 04:37Josu San MartinJosu San MartinCPPg++14.2.0Error
May 16, 2026 00:21Josu San MartinJosu San MartinCPPg++10.5.0Success15,282
May 15, 2026 23:14Josu San MartinJosu San MartinCPPg++10.5.0Success21,895+5.00 RP
May 15, 2026 23:09Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:42Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:39Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:36Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:19Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:16Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:13Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 22:11Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 21:35Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 21:23Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 20:44M-RochatM-RochatCPPg++13.2.0Success27,502+368.61 RP
May 15, 2026 20:42M-RochatM-RochatCPPg++13.2.0Error
May 15, 2026 20:39M-RochatM-RochatCPPg++13.2.0Error
May 15, 2026 20:37M-RochatM-RochatCPPg++13.2.0Error
May 15, 2026 20:33M-RochatM-RochatCPPg++13.2.0Error
May 15, 2026 19:39Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 19:19Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 19:13Josu San MartinJosu San MartinCPPg++10.5.0Error
May 15, 2026 14:47Josu San MartinJosu San MartinCPPg++14.2.0Error
May 15, 2026 14:42Josu San MartinJosu San MartinCPPg++14.2.0Error
May 15, 2026 14:14olliecrowolliecrowRUSTrust-1.95.0Success8,392+5.00 RP
May 14, 2026 17:47Josu San MartinJosu San MartinZIG0.15.1Success33,111
May 14, 2026 17:06Josu San MartinJosu San MartinZIG0.15.1Error
May 8, 2026 04:25Hung T.NguyenHung T.NguyenCPPg++10.5.0Success151,113+66.18 RP
May 7, 2026 09:15Victor MerckléVictor MerckléCPPg++14.2.0Success50,009
May 6, 2026 15:07olliecrowolliecrowCPPg++13.3.0Error
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