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 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
Sep 8, 2026 09:14Haha ExpertHaha ExpertCSHARP10.0.11Success18,014+7.15 RP
Sep 5, 2026 08:04Haha ExpertHaha ExpertCSHARP9.0.19Success18,517
Sep 5, 2026 08:02Haha ExpertHaha ExpertCSHARP10.0.11Success18,327
Sep 5, 2026 00:10Victor MerckléVictor MerckléCPPg++14.2.0Success2,379
Sep 4, 2026 23:16Victor MerckléVictor MerckléCPPg++14.2.0Error
Sep 4, 2026 20:36Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Success2,909+2.36 RP
Sep 4, 2026 20:20Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Sep 4, 2026 15:42Victor MerckléVictor MerckléCPPg++14.2.0Success2,371
Sep 4, 2026 10:22Victor MerckléVictor MerckléCPPg++14.2.0Error
Sep 4, 2026 09:14Victor MerckléVictor MerckléCPPg++14.2.0Error+14.30 RP
Sep 4, 2026 08:33Victor MerckléVictor MerckléCPPg++14.2.0Success2,707
Sep 4, 2026 08:06Victor MerckléVictor MerckléCPPg++14.2.0Success2,375
Sep 4, 2026 07:39Victor MerckléVictor MerckléCPPg++14.2.0Success2,823
Sep 4, 2026 07:26Victor MerckléVictor MerckléCPPg++14.2.0Error+3.56 RP
Sep 4, 2026 07:07Victor MerckléVictor MerckléCPPg++14.2.0Success2,386
Aug 24, 2026 16:47Haha ExpertHaha ExpertCSHARP10.0.11Success18,249+1.29 RP
Aug 24, 2026 11:49Haha ExpertHaha ExpertCSHARP10.0.11Error+429.73 RP
Aug 24, 2026 00:51Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error+279.05 RP
Aug 23, 2026 22:15Andrew EpsteinAndrew EpsteinCPPg++14.2.0Error