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 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.0Success2,365
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.0Success2,370
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
Aug 21, 2026 15:46Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success136,917+73.04 RP
Aug 19, 2026 21:12Victor MerckléVictor MerckléZIG0.16.0Error+23.00 RP
Aug 19, 2026 17:48Victor MerckléVictor MerckléCPPg++14.2.0Success2,384+24.56 RP
Aug 19, 2026 17:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,407
Aug 19, 2026 17:12Victor MerckléVictor MerckléCPPg++14.2.0Success2,391+17.46 RP
Aug 19, 2026 16:55Victor MerckléVictor MerckléCPPg++14.2.0Success2,452
Aug 19, 2026 16:46Victor MerckléVictor MerckléCPPg++14.2.0Success2,443
Aug 19, 2026 16:31Victor MerckléVictor MerckléCPPg++14.2.0Success2,426
Aug 19, 2026 16:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,399
Aug 19, 2026 16:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,396+10.44 RP
Aug 19, 2026 16:08Victor MerckléVictor MerckléCPPg++14.2.0Success2,399+17.34 RP
Aug 19, 2026 16:01Victor MerckléVictor MerckléCPPg++14.2.0Success2,472
Aug 19, 2026 15:53Victor MerckléVictor MerckléGOgo1.26.2Error
Aug 19, 2026 15:39Victor MerckléVictor MerckléRUSTrust-1.95.0Error
Aug 19, 2026 15:22Victor MerckléVictor MerckléCSHARP10.0.7Error
Aug 19, 2026 14:28Victor MerckléVictor MerckléCPPg++14.2.0Success2,411
Aug 19, 2026 14:20Victor MerckléVictor MerckléCPPg++14.2.0Success2,407
Aug 19, 2026 14:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,430
Aug 19, 2026 14:07Victor MerckléVictor MerckléCPPg++14.2.0Success2,414
Aug 19, 2026 13:59Victor MerckléVictor MerckléCPPg++14.2.0Success2,407
Aug 19, 2026 13:52Victor MerckléVictor MerckléCPPg++14.2.0Success2,404+27.60 RP
Aug 19, 2026 13:44Victor MerckléVictor MerckléCPPg++14.2.0Success2,468
Aug 19, 2026 13:37Victor MerckléVictor MerckléCPPg++14.2.0Error+35.78 RP
Aug 19, 2026 13:30Victor MerckléVictor MerckléCPPg++14.2.0Error
Aug 19, 2026 13:23Victor MerckléVictor MerckléCPPg++14.2.0Error+98.92 RP
Aug 19, 2026 13:16Victor MerckléVictor MerckléCPPg++14.2.0Error+132.26 RP
Aug 19, 2026 13:07Victor MerckléVictor MerckléCPPg++14.2.0Success2,586
Aug 19, 2026 12:56Victor MerckléVictor MerckléCPPg++14.2.0Success2,590
Aug 19, 2026 10:35Victor MerckléVictor MerckléCPPg++14.2.0Success2,578+6.01 RP
Aug 19, 2026 10:27Victor MerckléVictor MerckléCPPg++14.2.0Success2,582+23.85 RP
Aug 19, 2026 10:19Victor MerckléVictor MerckléCPPg++14.2.0Success2,598
Aug 19, 2026 10:11Victor MerckléVictor MerckléCPPg++14.2.0Success2,620
Aug 19, 2026 10:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,615
Aug 19, 2026 09:47Victor MerckléVictor MerckléCPPg++14.2.0Success2,610
Aug 19, 2026 09:39Victor MerckléVictor MerckléCPPg++14.2.0Success2,598
Aug 19, 2026 09:30Victor MerckléVictor MerckléCPPg++14.2.0Success2,598+14.76 RP
Aug 19, 2026 09:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,627
Aug 19, 2026 09:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,608+19.02 RP
Aug 19, 2026 09:05Victor MerckléVictor MerckléCPPg++14.2.0Success2,640
Aug 19, 2026 08:56Victor MerckléVictor MerckléCPPg++14.2.0Success2,688
Aug 19, 2026 08:49Victor MerckléVictor MerckléCPPg++14.2.0Success3,093
Aug 19, 2026 08:41Victor MerckléVictor MerckléCPPg++14.2.0Success2,772
Aug 19, 2026 08:28Victor MerckléVictor MerckléCPPg++14.2.0Success2,714
Aug 19, 2026 08:20Victor MerckléVictor MerckléCPPg++14.2.0Success2,621+17.39 RP
Aug 19, 2026 08:10Victor MerckléVictor MerckléCPPg++14.2.0Error+44.20 RP
Aug 19, 2026 08:00Victor MerckléVictor MerckléCPPg++14.2.0Success2,666
Aug 19, 2026 07:50Victor MerckléVictor MerckléCPPg++14.2.0Success2,685
Aug 19, 2026 07:40Victor MerckléVictor MerckléCPPg++14.2.0Success2,759
Aug 19, 2026 07:13Victor MerckléVictor MerckléCPPg++14.2.0Success2,677
Aug 19, 2026 06:45Victor MerckléVictor MerckléCPPg++14.2.0Success4,999
Aug 19, 2026 06:29Victor MerckléVictor MerckléCPPg++14.2.0Success2,685
Aug 19, 2026 06:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,801
Aug 18, 2026 15:09Victor MerckléVictor MerckléCPPg++14.2.0Success3,226
Aug 18, 2026 15:00Victor MerckléVictor MerckléCPPg++14.2.0Success2,768
Aug 18, 2026 14:49Victor MerckléVictor MerckléCPPg++14.2.0Success2,772
Aug 18, 2026 14:24Victor MerckléVictor MerckléCPPg++14.2.0Success3,696
Aug 18, 2026 02:51Josu San MartinJosu San MartinCSHARP10.0.7Error
Aug 18, 2026 02:47Josu San MartinJosu San MartinGOgo1.26.2Error
Aug 18, 2026 02:45Josu San MartinJosu San MartinZIG0.15.1Error
Aug 18, 2026 02:43Josu San MartinJosu San MartinRUSTrust-1.95.0Error
Aug 17, 2026 18:37Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 18:20Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 17:08Tomislav TunkovicTomislav TunkovicZIG0.15.1Error
Aug 17, 2026 17:05Tomislav TunkovicTomislav TunkovicRUSTrust-1.95.0Error