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
Aug 21, 2026 15:46Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success136,917+73.04 RP
Aug 19, 2026 21:12Victor MerckléVictor MerckléZIG0.16.0Success2,371+264.49 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.2Success2,508+148.47 RP
Aug 19, 2026 15:39Victor MerckléVictor MerckléRUSTrust-1.95.0Success2,408+184.57 RP
Aug 19, 2026 15:22Victor MerckléVictor MerckléCSHARP10.0.7Success2,548+423.25 RP
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.0Success2,412+71.56 RP
Aug 19, 2026 13:30Victor MerckléVictor MerckléCPPg++14.2.0Success2,435
Aug 19, 2026 13:23Victor MerckléVictor MerckléCPPg++14.2.0Success2,433+150.63 RP
Aug 19, 2026 13:16Victor MerckléVictor MerckléCPPg++14.2.0Success2,493+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.0Success2,633+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.7Success4,054
Aug 18, 2026 02:47Josu San MartinJosu San MartinGOgo1.26.2Success4,051
Aug 18, 2026 02:45Josu San MartinJosu San MartinZIG0.15.1Success3,918
Aug 18, 2026 02:43Josu San MartinJosu San MartinRUSTrust-1.95.0Success3,938
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.1Success2,515+337.13 RP
Aug 17, 2026 17:05Tomislav TunkovicTomislav TunkovicRUSTrust-1.95.0Success2,520+225.74 RP
Aug 17, 2026 17:03Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 16:55Tomislav TunkovicTomislav TunkovicGOgo1.26.2Success2,605+338.60 RP
Aug 16, 2026 23:11Tomislav TunkovicTomislav TunkovicGOgo1.26.2Success13,292
Aug 16, 2026 23:10Tomislav TunkovicTomislav TunkovicZIG0.15.1Success7,254
Aug 16, 2026 23:10Tomislav TunkovicTomislav TunkovicRUSTrust-1.95.0Success6,970
Aug 16, 2026 13:14marko1597marko1597CPPclang++17.0.6Success2,914
Aug 16, 2026 13:14marko1597marko1597CPPclang++19.1.1Success37,443
Aug 16, 2026 09:57marko1597marko1597CPPclang++19.1.1Success2,912+5.89 RP
Aug 16, 2026 09:46marko1597marko1597CPPclang++19.1.1Success3,130
Aug 16, 2026 09:17marko1597marko1597CPPclang++19.1.1Success2,917+358.81 RP
Aug 16, 2026 08:43marko1597marko1597CPPclang++20.1.2Success3,258+11.26 RP
Aug 16, 2026 08:11marko1597marko1597CPPclang++19.1.1Success3,270+8.39 RP
Aug 16, 2026 07:54marko1597marko1597CPPclang++20.1.2Success3,279+159.54 RP
Aug 16, 2026 07:41marko1597marko1597CPPclang++19.1.1Success3,460+5.84 RP
Aug 16, 2026 07:21marko1597marko1597CPPclang++20.1.2Success3,467+4.15 RP
Aug 16, 2026 07:20marko1597marko1597CPPg++14.2.0Success3,934
Aug 16, 2026 07:08marko1597marko1597CPPclang++20.1.2Success3,472+13.21 RP
Aug 16, 2026 00:18marko1597marko1597CPPclang++20.1.2Success3,488+9.01 RP
Aug 16, 2026 00:06marko1597marko1597CPPclang++20.1.2Success3,514
Aug 15, 2026 23:43marko1597marko1597CPPclang++20.1.2Success3,883
Aug 15, 2026 23:21marko1597marko1597CPPclang++20.1.2Success3,499+33.90 RP
Aug 15, 2026 22:59marko1597marko1597CPPclang++20.1.2Success3,541+26.86 RP
Aug 15, 2026 22:40marko1597marko1597CPPclang++20.1.2Success34,822
Aug 15, 2026 22:27marko1597marko1597CPPclang++20.1.2Success3,575+39.34 RP
Aug 15, 2026 22:09marko1597marko1597CPPclang++20.1.2Success3,634
Aug 15, 2026 22:04marko1597marko1597CPPclang++20.1.2Success3,668
Aug 15, 2026 21:57marko1597marko1597CPPclang++20.1.2Success3,626+359.20 RP
Aug 15, 2026 09:13Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,483
Aug 15, 2026 09:07Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,464+653.93 RP
Aug 15, 2026 08:53Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,808
Aug 15, 2026 08:47Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success3,620
Aug 15, 2026 08:36Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,696+23.24 RP
Aug 15, 2026 08:28Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,713+173.49 RP
Aug 15, 2026 07:54Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,847+48.67 RP
Aug 15, 2026 07:47Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,887+667.38 RP
Aug 15, 2026 07:30Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success3,576+689.83 RP