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 17, 2026 17:03Tomislav TunkovicTomislav TunkovicCSHARP9.0.15Error
Aug 17, 2026 16:55Tomislav TunkovicTomislav TunkovicGOgo1.26.2Error
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.1Error+5.89 RP
Aug 16, 2026 09:46marko1597marko1597CPPclang++19.1.1Success3,130
Aug 16, 2026 09:17marko1597marko1597CPPclang++19.1.1Error+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.2Error+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.2Error+359.20 RP
Aug 15, 2026 09:13Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success2,483
Aug 15, 2026 09:07Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+349.24 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.0Error+173.49 RP
Aug 15, 2026 07:54Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+48.67 RP
Aug 15, 2026 07:47Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+667.38 RP
Aug 15, 2026 07:30Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+689.83 RP
Aug 15, 2026 07:20Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+212.30 RP
Aug 14, 2026 19:36marko1597marko1597CPPclang++20.1.2Success4,809
Aug 14, 2026 19:35marko1597marko1597CPPclang++20.1.2Success4,169
Aug 14, 2026 18:58marko1597marko1597CPPclang++20.1.2Success4,169+16.00 RP
Aug 14, 2026 18:53marko1597marko1597CPPclang++20.1.2Error+482.24 RP
Aug 14, 2026 18:50marko1597marko1597CPPclang++20.1.2Success5,262+27.06 RP
Aug 14, 2026 18:48marko1597marko1597CPPclang++20.1.2Success47,686
Aug 14, 2026 18:41marko1597marko1597CPPclang++20.1.2Success5,338+4.55 RP
Aug 14, 2026 18:24marko1597marko1597CPPg++14.2.0Success65,023
Aug 14, 2026 18:23marko1597marko1597CPPclang++20.1.2Error+103.27 RP
Aug 14, 2026 18:08marko1597marko1597CPPg++14.2.0Success6,766
Aug 14, 2026 16:45Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+138.37 RP
Aug 14, 2026 16:34Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+82.01 RP
Aug 14, 2026 16:23Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success5,974+27.56 RP
Aug 14, 2026 15:18marko1597marko1597CPPg++14.2.0Success5,664+35.73 RP
Aug 14, 2026 15:00marko1597marko1597CPPg++14.2.0Success42,075
Aug 14, 2026 14:49marko1597marko1597CPPg++14.2.0Success5,800
Aug 14, 2026 14:37Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success6,179
Aug 14, 2026 14:32marko1597marko1597CPPg++14.2.0Error+305.71 RP
Aug 14, 2026 14:23Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Success6,074
Aug 14, 2026 14:18marko1597marko1597CPPg++14.2.0Error+184.02 RP
Aug 14, 2026 14:10Tomislav TunkovicTomislav TunkovicCPPg++14.2.0Error+1'646.36 RP
Aug 14, 2026 14:01marko1597marko1597CPPg++14.2.0Error+1'151.30 RP
Aug 14, 2026 13:37marko1597marko1597CPPg++14.2.0Error+88.78 RP
Aug 2, 2026 15:51Victor MerckléVictor MerckléCPPg++14.2.0Success2,835
Aug 2, 2026 15:36Victor MerckléVictor MerckléCPPg++14.2.0Success2,768
Jul 31, 2026 06:14TonyTonyCPPg++10.5.0Success150,597+66.40 RP
Jul 30, 2026 03:18Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,694
Jul 30, 2026 03:11Andrew TsibinAndrew TsibinRUSTrust-1.95.0Error+53.24 RP
Jul 30, 2026 03:04Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,698
Jul 30, 2026 02:53Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success6,105
Jul 30, 2026 02:34Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,780
Jul 30, 2026 02:26Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,940
Jul 30, 2026 02:12Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,806
Jul 30, 2026 02:05Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,810
Jul 30, 2026 01:58Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,806
Jul 30, 2026 01:48Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success22,097
Jul 30, 2026 01:22Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success6,132
Jul 30, 2026 01:04Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,527+27.40 RP
Jul 30, 2026 00:57Andrew TsibinAndrew TsibinRUSTrust-1.95.0Success5,740
Jul 30, 2026 00:47Andrew TsibinAndrew TsibinRUSTrust-1.95.0Error+573.14 RP
Jul 29, 2026 23:56Andrew TsibinAndrew TsibinRUSTrust-1.95.0Error+159.32 RP
Jul 29, 2026 22:58Andrew TsibinAndrew TsibinRUSTrust-1.95.0Error+1'049.43 RP
Jul 29, 2026 22:44Andrew TsibinAndrew TsibinRUSTrust-1.95.0Error
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.0Error+120.00 RP
Jul 6, 2026 21:15Josu San MartinJosu San MartinCPPg++14.2.0Error+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