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
Jun 20, 2026 07:32A_ShamanA_ShamanCPPg++10.5.0Error
Jun 12, 2026 22:36Victor MerckléVictor MerckléRUSTrust-1.95.0Success2,686
Jun 12, 2026 22:29Victor MerckléVictor MerckléRUSTrust-1.95.0Success2,674
Jun 12, 2026 22:10Victor MerckléVictor MerckléRUSTrust-1.95.0Success2,672+25.12 RP
Jun 12, 2026 17:06Victor MerckléVictor MerckléRUSTrust-1.95.0Success2,681+165.85 RP
Jun 11, 2026 18:44Victor MerckléVictor MerckléCPPg++14.2.0Success2,704
Jun 11, 2026 18:38Victor MerckléVictor MerckléCPPg++14.2.0Success2,713
Jun 11, 2026 18:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,708
Jun 11, 2026 18:26Victor MerckléVictor MerckléCPPg++14.2.0Success2,710
Jun 11, 2026 18:13Victor MerckléVictor MerckléCPPg++14.2.0Success2,704
Jun 11, 2026 18:07Victor MerckléVictor MerckléCPPg++14.2.0Success2,704+29.96 RP
Jun 11, 2026 18:01Victor MerckléVictor MerckléCPPg++14.2.0Success2,715+10.84 RP
Jun 11, 2026 17:53Victor MerckléVictor MerckléCPPg++14.2.0Success2,758
Jun 11, 2026 17:47Victor MerckléVictor MerckléCPPg++14.2.0Success2,740
Jun 11, 2026 17:41Victor MerckléVictor MerckléCPPg++14.2.0Success2,721
Jun 11, 2026 17:35Victor MerckléVictor MerckléCPPg++14.2.0Success2,719+32.32 RP
Jun 11, 2026 17:29Victor MerckléVictor MerckléCPPg++14.2.0Success2,748
Jun 11, 2026 17:23Victor MerckléVictor MerckléCPPg++14.2.0Success2,731+5.36 RP
Jun 11, 2026 17:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,737
Jun 11, 2026 17:08Victor MerckléVictor MerckléCPPg++14.2.0Success2,745
Jun 11, 2026 17:02Victor MerckléVictor MerckléCPPg++14.2.0Success2,740
Jun 11, 2026 16:55Victor MerckléVictor MerckléCPPg++14.2.0Success2,738
Jun 11, 2026 16:47Victor MerckléVictor MerckléCPPg++14.2.0Success2,743
Jun 11, 2026 16:39Victor MerckléVictor MerckléCPPg++14.2.0Success2,742
Jun 11, 2026 16:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,807
Jun 11, 2026 16:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,740
Jun 11, 2026 16:08Victor MerckléVictor MerckléCPPg++14.2.0Success2,741
Jun 11, 2026 04:11Victor MerckléVictor MerckléGOgo1.26.2Error
Jun 11, 2026 03:50Victor MerckléVictor MerckléGOgo1.26.2Success2,879
Jun 11, 2026 03:06Victor MerckléVictor MerckléGOgo1.26.2Success2,862
Jun 11, 2026 02:44Victor MerckléVictor MerckléGOgo1.26.2Success2,857+584.72 RP
Jun 11, 2026 02:22Victor MerckléVictor MerckléGOgo1.26.2Error
Jun 11, 2026 02:03Victor MerckléVictor MerckléCSHARP10.0.7Success2,863
Jun 11, 2026 01:51Victor MerckléVictor MerckléCSHARP10.0.7Success2,915
Jun 11, 2026 01:41Victor MerckléVictor MerckléCSHARP10.0.7Success2,856+1.23 RP
Jun 11, 2026 01:30Victor MerckléVictor MerckléCSHARP10.0.7Success2,864
Jun 11, 2026 01:18Victor MerckléVictor MerckléCSHARP10.0.7Success2,857+593.20 RP
Jun 10, 2026 08:31Victor MerckléVictor MerckléZIG0.16.0Success2,748+456.32 RP
Jun 10, 2026 00:47Victor MerckléVictor MerckléCPPg++14.2.0Success3,060
Jun 10, 2026 00:40Victor MerckléVictor MerckléCPPg++14.2.0Success2,777
Jun 10, 2026 00:31Victor MerckléVictor MerckléCPPg++14.2.0Success2,937
Jun 10, 2026 00:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,828
Jun 10, 2026 00:16Victor MerckléVictor MerckléCPPg++14.2.0Success3,072
Jun 10, 2026 00:01Victor MerckléVictor MerckléCPPg++14.2.0Success2,743
Jun 9, 2026 23:51Victor MerckléVictor MerckléCPPg++14.2.0Success2,744
Jun 8, 2026 21:05Victor MerckléVictor MerckléRUSTrust-1.95.0Success2,781+411.12 RP
Jun 8, 2026 04:42Victor MerckléVictor MerckléCPPg++14.2.0Success2,740
Jun 8, 2026 04:35Victor MerckléVictor MerckléCPPg++14.2.0Success2,736
Jun 8, 2026 04:28Victor MerckléVictor MerckléCPPg++14.2.0Success2,797
Jun 8, 2026 04:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,750
Jun 8, 2026 03:42Victor MerckléVictor MerckléCPPg++14.2.0Success3,701
Jun 7, 2026 05:11Victor MerckléVictor MerckléCPPg++14.2.0Success2,746
Jun 6, 2026 15:05Victor MerckléVictor MerckléCPPg++14.2.0Success2,746
Jun 5, 2026 17:25Victor MerckléVictor MerckléCPPg++14.2.0Success2,733+68.96 RP
Jun 5, 2026 17:16Victor MerckléVictor MerckléCPPg++14.2.0Success2,759+5.26 RP
Jun 5, 2026 17:06Victor MerckléVictor MerckléCPPg++14.2.0Success2,761+248.30 RP
Jun 5, 2026 16:51Victor MerckléVictor MerckléCPPg++14.2.0Success2,865
Jun 5, 2026 16:43Victor MerckléVictor MerckléCPPg++14.2.0Success2,859+188.10 RP
Jun 5, 2026 16:30Victor MerckléVictor MerckléCPPg++14.2.0Success4,713
Jun 5, 2026 16:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,979
Jun 5, 2026 16:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,938+123.09 RP
Jun 5, 2026 16:05Victor MerckléVictor MerckléCPPg++14.2.0Success3,027+118.89 RP
May 21, 2026 17:04M-RochatM-RochatCPPg++13.3.0Success4,963+0.41 RP
May 21, 2026 16:56M-RochatM-RochatCPPg++13.3.0Success5,039
May 21, 2026 16:49M-RochatM-RochatCPPg++13.3.0Success5,471
May 21, 2026 16:42M-RochatM-RochatCPPg++13.3.0Success5,535
May 21, 2026 16:34M-RochatM-RochatCPPg++13.3.0Success5,662
May 21, 2026 16:26M-RochatM-RochatCPPg++13.3.0Success5,981
May 21, 2026 16:19M-RochatM-RochatCPPg++13.3.0Success6,128
May 21, 2026 09:51M-RochatM-RochatCPPg++13.3.0Success8,290
May 21, 2026 09:42M-RochatM-RochatCPPg++13.3.0Success9,517
May 21, 2026 09:34M-RochatM-RochatCPPg++13.3.0Success9,050
May 21, 2026 09:26M-RochatM-RochatCPPg++13.3.0Success8,688
May 21, 2026 09:16M-RochatM-RochatCPPg++13.3.0Success6,153
May 18, 2026 18:07M-RochatM-RochatCPPg++13.3.0Success5,027
May 18, 2026 08:26M-RochatM-RochatCPPg++13.3.0Success5,296
May 18, 2026 08:13M-RochatM-RochatCPPg++13.3.0Success5,024
May 18, 2026 08:08M-RochatM-RochatCPPg++13.3.0Success4,972
May 18, 2026 08:01M-RochatM-RochatCPPg++13.3.0Success4,970
May 18, 2026 07:55M-RochatM-RochatCPPg++12.4.0Success4,973
May 18, 2026 07:49M-RochatM-RochatCPPg++13.2.0Success4,969
May 18, 2026 07:43M-RochatM-RochatCPPg++13.2.0Success4,967
May 18, 2026 07:38M-RochatM-RochatCPPg++13.3.0Success4,964+4.45 RP
May 18, 2026 07:32M-RochatM-RochatCPPclang++18.1.3Success5,211
May 18, 2026 07:26M-RochatM-RochatCPPclang++20.1.2Success5,231
May 18, 2026 07:20M-RochatM-RochatCPPg++13.2.0Success4,975+85.86 RP
May 18, 2026 07:20M-RochatM-RochatCPPclang++18.1.3Success5,197+54.33 RP
May 18, 2026 07:09M-RochatM-RochatCPPg++14.2.0Success5,351
May 18, 2026 07:03M-RochatM-RochatCPPg++14.2.0Success5,424
May 18, 2026 06:57M-RochatM-RochatCPPg++14.2.0Success5,401
May 18, 2026 06:51M-RochatM-RochatCPPg++14.2.0Success5,474
May 18, 2026 06:44M-RochatM-RochatCPPg++14.2.0Success5,348+24.16 RP
May 18, 2026 06:39M-RochatM-RochatCPPg++14.2.0Success5,501
May 18, 2026 06:28M-RochatM-RochatCPPg++14.2.0Success5,608
May 18, 2026 06:24M-RochatM-RochatCPPg++14.2.0Success5,418+14.87 RP
May 18, 2026 06:19M-RochatM-RochatCPPg++14.2.0Success5,530
May 18, 2026 06:11M-RochatM-RochatCPPg++14.2.0Success6,019
May 18, 2026 06:07M-RochatM-RochatCPPg++14.2.0Success5,668
May 18, 2026 06:02M-RochatM-RochatCPPg++14.2.0Success5,462+204.55 RP
May 18, 2026 06:01M-RochatM-RochatCPPg++14.2.0Success6,149