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
Sep 17, 2026 20:31Andrew EpsteinAndrew EpsteinZIG0.15.1Success3,094+714.44 RP
Sep 17, 2026 20:09Andrew EpsteinAndrew EpsteinZIG0.15.1Success3,993
Sep 17, 2026 16:14Victor MerckléVictor MerckléCSHARP10.0.7Success226,380
Sep 17, 2026 15:25Victor MerckléVictor MerckléCSHARP10.0.7Success208,026
Sep 17, 2026 14:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,592
Sep 17, 2026 14:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,580
Sep 17, 2026 13:48Victor MerckléVictor MerckléCPPg++14.2.0Success2,621
Sep 17, 2026 13:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,577
Sep 17, 2026 13:17Victor MerckléVictor MerckléCPPg++14.2.0Success2,580
Sep 16, 2026 20:59Andrew EpsteinAndrew EpsteinZIG0.15.1Success3,972+168.55 RP
Sep 16, 2026 20:52Andrew EpsteinAndrew EpsteinZIG0.15.1Success4,311
Sep 16, 2026 16:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,584
Sep 16, 2026 16:24Victor MerckléVictor MerckléCPPg++14.2.0Success2,605
Sep 16, 2026 16:13Victor MerckléVictor MerckléCPPg++14.2.0Success2,596
Sep 16, 2026 16:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,694
Sep 16, 2026 15:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,695
Sep 16, 2026 15:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,697
Sep 16, 2026 15:02Victor MerckléVictor MerckléCPPg++14.2.0Success2,698
Sep 16, 2026 14:54Victor MerckléVictor MerckléCPPg++14.2.0Success2,703
Sep 16, 2026 14:47Victor MerckléVictor MerckléCPPg++14.2.0Success2,714
Sep 16, 2026 13:31Victor MerckléVictor MerckléCPPg++14.2.0Success2,740
Sep 16, 2026 13:11Victor MerckléVictor MerckléCPPg++14.2.0Success2,708
Sep 16, 2026 13:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,744
Sep 15, 2026 23:35Josu San MartinJosu San MartinCPPg++12.4.0Success3,940+22.35 RP
Sep 15, 2026 16:31Victor MerckléVictor MerckléCPPg++14.2.0Success2,720
Sep 15, 2026 16:23Victor MerckléVictor MerckléCPPg++14.2.0Success2,714
Sep 15, 2026 16:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,710
Sep 15, 2026 16:03Victor MerckléVictor MerckléCPPg++14.2.0Success3,157
Sep 15, 2026 15:54Victor MerckléVictor MerckléCPPg++14.2.0Success2,712
Sep 15, 2026 15:38Victor MerckléVictor MerckléCPPg++14.2.0Success2,743
Sep 15, 2026 15:30Victor MerckléVictor MerckléCPPg++14.2.0Success2,729
Sep 15, 2026 15:20Victor MerckléVictor MerckléCPPg++14.2.0Success2,716
Sep 15, 2026 15:13Victor MerckléVictor MerckléCPPg++14.2.0Success2,738
Sep 15, 2026 14:50Victor MerckléVictor MerckléCPPg++14.2.0Success3,140
Sep 15, 2026 14:36Victor MerckléVictor MerckléCPPg++14.2.0Success2,843
Sep 15, 2026 14:29Victor MerckléVictor MerckléCPPg++14.2.0Success2,824
Sep 15, 2026 09:59Victor MerckléVictor MerckléCPPg++14.2.0Success2,804
Sep 15, 2026 09:51Victor MerckléVictor MerckléCPPg++14.2.0Success2,922
Sep 15, 2026 09:42Victor MerckléVictor MerckléCPPg++14.2.0Success2,873
Sep 15, 2026 09:34Victor MerckléVictor MerckléCPPg++14.2.0Success3,139
Sep 15, 2026 09:25Victor MerckléVictor MerckléCPPg++14.2.0Success3,407
Sep 15, 2026 08:46Victor MerckléVictor MerckléCPPg++14.2.0Success4,000
Sep 15, 2026 08:20Victor MerckléVictor MerckléCPPg++14.2.0Success3,538
Sep 15, 2026 08:06Victor MerckléVictor MerckléCPPg++14.2.0Success3,538
Sep 15, 2026 00:54Josu San MartinJosu San MartinCPPg++14.2.0Success3,975+5.68 RP
Sep 15, 2026 00:49Josu San MartinJosu San MartinCPPg++12.4.0Error+1'090.80 RP
Sep 15, 2026 00:36Josu San MartinJosu San MartinCPPg++14.2.0Success63,762
Sep 15, 2026 00:16Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,259
Sep 15, 2026 00:07Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success49,404
Sep 14, 2026 23:57Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,047
Sep 14, 2026 23:47Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,917+65.70 RP
Sep 14, 2026 23:36Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success2,974+261.70 RP
Sep 14, 2026 23:14Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,267
Sep 14, 2026 22:55Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,435
Sep 14, 2026 22:50Andrew EpsteinAndrew EpsteinGOgo1.26.2Success3,367
Sep 14, 2026 22:46Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success3,258
Sep 14, 2026 22:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,235
Sep 14, 2026 22:34Andrew EpsteinAndrew EpsteinCSHARP10.0.8Success3,519
Sep 14, 2026 22:25Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,225+92.35 RP
Sep 14, 2026 22:21Andrew EpsteinAndrew EpsteinGOgo1.26.2Success3,699
Sep 14, 2026 22:13Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success4,079
Sep 14, 2026 22:12Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,491
Sep 14, 2026 22:08Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success5,694
Sep 14, 2026 22:06Andrew EpsteinAndrew EpsteinCSHARP10.0.8Success5,159
Sep 14, 2026 21:57Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success3,585
Sep 14, 2026 21:53Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,967
Sep 14, 2026 21:40Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,978
Sep 14, 2026 21:39Andrew EpsteinAndrew EpsteinGOgo1.26.2Success4,625
Sep 14, 2026 21:38Andrew EpsteinAndrew EpsteinCSHARP9.0.15Error
Sep 14, 2026 21:26Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success4,246
Sep 14, 2026 21:23Andrew EpsteinAndrew EpsteinZIG0.15.1Success4,257+406.19 RP
Sep 14, 2026 21:21Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,760
Sep 14, 2026 21:01Andrew EpsteinAndrew EpsteinZIG0.15.1Error
Sep 14, 2026 20:56Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,378
Sep 14, 2026 20:55Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,388
Sep 14, 2026 20:54Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,324+12.62 RP
Sep 14, 2026 20:52Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success6,102
Sep 14, 2026 03:05Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success6,092
Sep 14, 2026 03:03Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,912
Sep 14, 2026 02:49Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,338+8.95 RP
Sep 14, 2026 02:40Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,444
Sep 14, 2026 02:27Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,348+119.89 RP
Sep 14, 2026 02:22Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,488+83.01 RP
Sep 14, 2026 02:19Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,692
Sep 14, 2026 02:14Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success3,592+305.65 RP
Sep 14, 2026 02:11Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success4,035+444.97 RP
Sep 14, 2026 01:59Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success4,918+26.52 RP
Sep 14, 2026 01:49Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success4,983+410.14 RP
Sep 14, 2026 01:46Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success6,580
Sep 14, 2026 01:43Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success6,263+28.79 RP
Sep 14, 2026 01:34Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success9,474
Sep 10, 2026 16:59Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success6,378+136.05 RP
Sep 10, 2026 16:59Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success6,984+102.06 RP
Sep 10, 2026 16:39Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success7,975
Sep 10, 2026 13:36Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success7,520+1'256.75 RP
Sep 10, 2026 12:50Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error+1'252.52 RP
Sep 10, 2026 00:25Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error
Sep 10, 2026 00:17Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error
Sep 10, 2026 00:08Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error+1'259.94 RP
Sep 8, 2026 22:54Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error+1'018.15 RP