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
Jul 10, 2026 18:59Genos0Genos0CPPg++10.5.0Error
Jul 10, 2026 18:23Genos0Genos0CPPg++10.5.0Success152,976+65.37 RP
Jul 7, 2026 20:10Victor MerckléVictor MerckléCPPg++14.2.0Success2,794
Jul 7, 2026 20:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,779
Jul 7, 2026 19:55Victor MerckléVictor MerckléCPPg++14.2.0Success2,806
Jul 7, 2026 19:45Victor MerckléVictor MerckléCPPg++14.2.0Success3,154
Jul 7, 2026 04:54Victor MerckléVictor MerckléCPPg++14.2.0Success6,533
Jul 7, 2026 04:38Victor MerckléVictor MerckléCPPg++14.2.0Success6,532
Jul 7, 2026 04:23Victor MerckléVictor MerckléCPPg++14.2.0Success2,672
Jul 7, 2026 04:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,680
Jul 7, 2026 04:04Victor MerckléVictor MerckléCPPg++14.2.0Success2,675
Jul 6, 2026 21:38Josu San MartinJosu San MartinCPPg++12.4.0Success3,915+120.00 RP
Jul 6, 2026 21:15Josu San MartinJosu San MartinCPPg++14.2.0Success4,108+1'006.93 RP
Jul 3, 2026 16:55Victor MerckléVictor MerckléCPPg++14.2.0Success2,799
Jul 3, 2026 15:55A_ShamanA_ShamanCPPg++10.5.0Success23,651
Jul 3, 2026 15:44A_ShamanA_ShamanCPPg++10.5.0Success23,134+118.51 RP
Jul 3, 2026 15:34A_ShamanA_ShamanCPPg++10.5.0Success31,872+26.99 RP
Jul 3, 2026 15:24A_ShamanA_ShamanCPPg++10.5.0Success38,639
Jul 3, 2026 02:41f0xerif0xeriCPPg++10.5.0Success150,661+66.37 RP
Jul 1, 2026 23:38A_ShamanA_ShamanCPPg++10.5.0Success93,230
Jul 1, 2026 23:11A_ShamanA_ShamanCPPg++10.5.0Error
Jul 1, 2026 23:00A_ShamanA_ShamanCPPg++10.5.0Success49,296
Jul 1, 2026 22:49A_ShamanA_ShamanCPPg++10.5.0Success67,236
Jul 1, 2026 22:37A_ShamanA_ShamanCPPg++10.5.0Success34,872+17.63 RP
Jul 1, 2026 22:27A_ShamanA_ShamanCPPg++10.5.0Success45,681
Jul 1, 2026 22:16A_ShamanA_ShamanCPPg++10.5.0Success75,774
Jul 1, 2026 22:06A_ShamanA_ShamanCPPg++10.5.0Success48,244
Jul 1, 2026 21:57A_ShamanA_ShamanCPPg++10.5.0Success49,146
Jul 1, 2026 21:47A_ShamanA_ShamanCPPg++10.5.0Success45,161
Jul 1, 2026 21:37A_ShamanA_ShamanCPPg++10.5.0Success74,062
Jul 1, 2026 21:27A_ShamanA_ShamanCPPg++10.5.0Success77,714
Jul 1, 2026 21:17A_ShamanA_ShamanCPPg++10.5.0Success37,157+85.45 RP
Jul 1, 2026 21:08A_ShamanA_ShamanCPPg++10.5.0Success91,125
Jul 1, 2026 21:00A_ShamanA_ShamanCPPg++10.5.0Success54,443+5.74 RP
Jul 1, 2026 20:49A_ShamanA_ShamanCPPg++10.5.0Success62,784
Jul 1, 2026 20:40A_ShamanA_ShamanCPPg++10.5.0Success75,390
Jul 1, 2026 20:19A_ShamanA_ShamanCPPg++10.5.0Success56,198+32.73 RP
Jul 1, 2026 20:02A_ShamanA_ShamanCPPg++10.5.0Success68,864+3.54 RP
Jul 1, 2026 19:57A_ShamanA_ShamanCPPg++10.5.0Success70,585+141.67 RP
Jul 1, 2026 19:45A_ShamanA_ShamanCPPg++10.5.0Error
Jul 1, 2026 19:37A_ShamanA_ShamanCPPg++10.5.0Error
Jul 1, 2026 19:20A_ShamanA_ShamanCPPg++10.5.0Error
Jul 1, 2026 19:08A_ShamanA_ShamanCPPg++10.5.0Error
Jul 1, 2026 10:33Victor MerckléVictor MerckléCPPg++14.2.0Success3,045
Jul 1, 2026 10:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,710
Jul 1, 2026 10:05Victor MerckléVictor MerckléCPPg++14.2.0Success2,848
Jul 1, 2026 09:55Victor MerckléVictor MerckléCPPg++14.2.0Success2,669
Jul 1, 2026 09:45Victor MerckléVictor MerckléCPPg++14.2.0Success2,664+14.06 RP
Jun 30, 2026 17:37A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 17:28A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 17:18A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 17:08A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:58A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:49A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:39A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:31A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:21A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:09A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 16:01A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 15:51A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 15:43A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 15:34A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 15:26A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 15:18A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 15:08A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 14:59A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 14:46A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 14:34A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 14:23A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 14:13A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 14:04A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:57A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:47A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:37A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:29A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:18A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:09A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 13:02A_ShamanA_ShamanCPPg++10.5.0Error
Jun 30, 2026 00:07A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:55A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:40A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:31A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:24A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:17A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:09A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 23:00A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:53A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:46A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:39A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:31A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:23A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:14A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:06A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 22:00A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 21:53A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 21:44A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 21:38A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 21:32A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 21:25A_ShamanA_ShamanCPPg++10.5.0Error
Jun 29, 2026 21:17A_ShamanA_ShamanCPPg++10.5.0Error