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 5, 2026 16:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,938+123.09 RP
Jun 5, 2026 16:05Victor MerckléVictor MerckléCPPg++14.2.0Success3,027+118.89 RP
May 21, 2026 17:04M-RochatM-RochatCPPg++13.3.0Error+0.41 RP
May 21, 2026 16:56M-RochatM-RochatCPPg++13.3.0Error
May 21, 2026 16:49M-RochatM-RochatCPPg++13.3.0Error
May 21, 2026 16:42M-RochatM-RochatCPPg++13.3.0Error
May 21, 2026 16:34M-RochatM-RochatCPPg++13.3.0Error
May 21, 2026 16:26M-RochatM-RochatCPPg++13.3.0Error
May 21, 2026 16:19M-RochatM-RochatCPPg++13.3.0Error
May 21, 2026 09:51M-RochatM-RochatCPPg++13.3.0Success8,290
May 21, 2026 09:42M-RochatM-RochatCPPg++13.3.0Success9,517
May 21, 2026 09:34M-RochatM-RochatCPPg++13.3.0Success9,050
May 21, 2026 09:26M-RochatM-RochatCPPg++13.3.0Success8,688
May 21, 2026 09:16M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 18:07M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 08:26M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 08:13M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 08:08M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 08:01M-RochatM-RochatCPPg++13.3.0Error
May 18, 2026 07:55M-RochatM-RochatCPPg++12.4.0Error
May 18, 2026 07:49M-RochatM-RochatCPPg++13.2.0Error
May 18, 2026 07:43M-RochatM-RochatCPPg++13.2.0Error
May 18, 2026 07:38M-RochatM-RochatCPPg++13.3.0Error+4.45 RP
May 18, 2026 07:32M-RochatM-RochatCPPclang++18.1.3Error
May 18, 2026 07:26M-RochatM-RochatCPPclang++20.1.2Error
May 18, 2026 07:20M-RochatM-RochatCPPg++13.2.0Error+85.86 RP
May 18, 2026 07:20M-RochatM-RochatCPPclang++18.1.3Error+54.33 RP
May 18, 2026 07:09M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 07:03M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:57M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:51M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:44M-RochatM-RochatCPPg++14.2.0Error+24.16 RP
May 18, 2026 06:39M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:28M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:24M-RochatM-RochatCPPg++14.2.0Error+14.87 RP
May 18, 2026 06:19M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:11M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:07M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 06:02M-RochatM-RochatCPPg++14.2.0Error+204.55 RP
May 18, 2026 06:01M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 05:48M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 05:47M-RochatM-RochatCPPg++14.2.0Error+180.15 RP
May 18, 2026 05:42M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 05:36M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 05:35M-RochatM-RochatCPPg++14.2.0Success8,521
May 18, 2026 05:23M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 05:23M-RochatM-RochatCPPg++14.2.0Error
May 18, 2026 04:54M-RochatM-RochatCPPg++13.2.0Error
May 18, 2026 04:54M-RochatM-RochatCPPg++14.2.0Error+25.07 RP
May 18, 2026 04:48M-RochatM-RochatCPPg++13.2.0Error+183.59 RP
May 17, 2026 23:56M-RochatM-RochatCPPg++13.2.0Error
May 17, 2026 23:37M-RochatM-RochatCPPg++13.2.0Error+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.0Error
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