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
Apr 27, 2026 19:32Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:30Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:26Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:22Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:16Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 19:09Victor MerckléVictor MerckléCPPg++14.2.0Error
Apr 27, 2026 10:59Charles CabergsCharles CabergsCPPg++13.3.0Success4,380
Apr 27, 2026 07:07Charles CabergsCharles CabergsCPPg++13.3.0Success4,360
Apr 27, 2026 04:32olliecrowolliecrowCSHARP9.0.15Success6,104
Apr 27, 2026 01:44Charles CabergsCharles CabergsCPPg++13.3.0Success4,311+4.83 RP
Apr 26, 2026 20:40Charles CabergsCharles CabergsCPPg++14.2.0Success4,322
Apr 26, 2026 19:57TudyMTudyMCPPclang++20.1.2Success28,492
Apr 26, 2026 18:33TudyMTudyMCPPg++10.5.0Success27,993+357.23 RP
Apr 26, 2026 18:32TudyMTudyMCPPg++10.5.0Error
Apr 26, 2026 18:29Charles CabergsCharles CabergsCPPg++13.3.0Success4,320+12.26 RP
Apr 26, 2026 17:23TudyMTudyMCPPg++10.5.0Error
Apr 26, 2026 16:43Charles CabergsCharles CabergsCPPg++13.3.0Success4,343+94.56 RP
Apr 25, 2026 22:35Charles CabergsCharles CabergsCPPg++13.3.0Success4,529+93.83 RP
Apr 25, 2026 21:53Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 25, 2026 09:16olliecrowolliecrowCPPg++10.5.0Success5,613
Apr 25, 2026 06:01Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 24, 2026 22:29olliecrowolliecrowCPPg++10.5.0Success5,309
Apr 24, 2026 17:14olliecrowolliecrowCSHARP9.0.15Success5,997
Apr 24, 2026 14:35Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 24, 2026 10:02Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 24, 2026 06:25olliecrowolliecrowCPPg++13.3.0Success4,802
Apr 24, 2026 02:38olliecrowolliecrowCSHARP9.0.15Success6,330
Apr 24, 2026 02:24olliecrowolliecrowCPPg++10.5.0Success5,315
Apr 23, 2026 22:51Charles CabergsCharles CabergsCPPg++13.3.0Success4,730+102.90 RP
Apr 23, 2026 22:20olliecrowolliecrowCSHARP9.0.15Success6,011
Apr 23, 2026 22:15olliecrowolliecrowCSHARP9.0.15Error
Apr 23, 2026 08:59Charles CabergsCharles CabergsCPPg++13.3.0Success5,003
Apr 23, 2026 05:45Charles CabergsCharles CabergsCPPg++13.3.0Success4,972+17.46 RP
Apr 23, 2026 02:11olliecrowolliecrowCSHARP9.0.15Success7,525
Apr 23, 2026 02:04olliecrowolliecrowCSHARP9.0.15Success6,385
Apr 23, 2026 01:48olliecrowolliecrowCPPclang++20.1.2Success4,458+5.00 RP
Apr 22, 2026 22:12olliecrowolliecrowCSHARP9.0.14Success6,062
Apr 22, 2026 21:15Dominique GarmierDominique GarmierRUSTrust-1.95.0Success5,422
Apr 22, 2026 21:11Dominique GarmierDominique GarmierRUSTrust-1.95.0Success8,945
Apr 22, 2026 21:08Dominique GarmierDominique GarmierRUSTrust-1.95.0Success5,429
Apr 22, 2026 21:05Dominique GarmierDominique GarmierRUSTrust-1.95.0Success5,522
Apr 22, 2026 21:01Dominique GarmierDominique GarmierRUSTrust-1.95.0Success5,495
Apr 22, 2026 20:58Dominique GarmierDominique GarmierRUSTrust-1.95.0Success5,449
Apr 22, 2026 20:55Dominique GarmierDominique GarmierRUSTrust-1.95.0Success7,737
Apr 22, 2026 20:39Charles CabergsCharles CabergsCPPg++13.3.0Success5,003+168.97 RP
Apr 22, 2026 18:44Charles CabergsCharles CabergsCPPg++13.3.0Success5,465+152.54 RP
Apr 22, 2026 16:37Charles CabergsCharles CabergsCPPg++13.3.0Success5,962+368.39 RP
Apr 22, 2026 16:16olliecrowolliecrowCPPg++10.5.0Success5,245
Apr 22, 2026 14:26Dominique GarmierDominique GarmierRUSTrust-1.95.0Success6,542
Apr 22, 2026 12:37BenBenCPPg++14.2.0Success21,640
Apr 22, 2026 12:33BenBenCPPclang++20.1.2Success21,528+128.78 RP
Apr 22, 2026 12:31BenBenCPPclang++20.1.2Error
Apr 22, 2026 09:16olliecrowolliecrowZIG0.15.1Success5,147+15.73 RP
Apr 22, 2026 09:01olliecrowolliecrowRUSTrust-1.95.0Success5,246
Apr 22, 2026 08:58olliecrowolliecrowRUSTrust-1.95.0Success4,748
Apr 22, 2026 05:47olliecrowolliecrowZIG0.15.1Success5,534
Apr 22, 2026 05:47olliecrowolliecrowZIG0.15.1Success5,189+179.21 RP
Apr 22, 2026 05:27olliecrowolliecrowRUSTrust-1.95.0Success4,498
Apr 22, 2026 05:09olliecrowolliecrowGOgo1.26.2Success10,679
Apr 21, 2026 23:41olliecrowolliecrowZIG0.14.0Success5,721+373.75 RP
Apr 21, 2026 23:23olliecrowolliecrowRUSTrust-1.95.0Success4,899
Apr 21, 2026 21:15Charles CabergsCharles CabergsCPPg++13.3.0Success7,640+338.03 RP
Apr 21, 2026 21:07BenBenCPPg++13.3.0Success29,786+77.10 RP
Apr 21, 2026 21:04BenBenCPPg++13.3.0Error
Apr 21, 2026 18:11Charles CabergsCharles CabergsCPPg++13.3.0Success10,300+47.34 RP
Apr 21, 2026 16:04Charles CabergsCharles CabergsCPPg++13.3.0Success10,895
Apr 21, 2026 15:14limanjun99limanjun99CPPg++14.2.0Success3,116
Apr 21, 2026 15:09limanjun99limanjun99CPPg++14.2.0Success3,112+13.37 RP
Apr 21, 2026 14:59limanjun99limanjun99CPPg++14.2.0Success3,125+28.42 RP
Apr 21, 2026 10:46limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 10:40limanjun99limanjun99CPPg++14.2.0Success3,153+16.01 RP
Apr 21, 2026 10:37limanjun99limanjun99CPPg++14.2.0Success3,169+411.33 RP
Apr 21, 2026 10:33limanjun99limanjun99CPPg++14.2.0Success3,644+91.01 RP
Apr 21, 2026 10:27limanjun99limanjun99CPPg++14.2.0Success3,769+24.41 RP
Apr 21, 2026 10:20limanjun99limanjun99CPPg++14.2.0Success3,804+33.43 RP
Apr 21, 2026 10:16limanjun99limanjun99CPPg++14.2.0Success4,791
Apr 21, 2026 10:10limanjun99limanjun99CPPg++14.2.0Success3,853+117.68 RP
Apr 21, 2026 10:05limanjun99limanjun99CPPg++14.2.0Success4,036+8.56 RP
Apr 21, 2026 09:53limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:47limanjun99limanjun99CPPg++14.2.0Success4,050+2'396.62 RP
Apr 21, 2026 09:44limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:43limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:38limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:37Charles CabergsCharles CabergsCPPg++13.3.0Success22,173
Apr 21, 2026 09:32limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:16limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:12limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 08:48limanjun99limanjun99CPPg++14.2.0Success137,897+1.12 RP
Apr 21, 2026 08:46limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 08:07limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 07:56limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 07:49limanjun99limanjun99CPPg++14.2.0Success140,060+76.40 RP
Apr 21, 2026 06:08olliecrowolliecrowCPPg++13.3.0Success4,247+5.00 RP
Apr 21, 2026 03:54Charles CabergsCharles CabergsCPPg++13.3.0Success18,393+5.00 RP
Apr 21, 2026 00:29Taylor DettlingTaylor DettlingRUSTrust-1.95.0Success18,564+431.07 RP
Apr 21, 2026 00:25Taylor DettlingTaylor DettlingRUSTrust-1.95.0Error
Apr 21, 2026 00:23Taylor DettlingTaylor DettlingRUSTrust-1.95.0Error
Apr 21, 2026 00:21Taylor DettlingTaylor DettlingRUSTrust-1.95.0Success92,928+112.61 RP
Apr 20, 2026 23:16olliecrowolliecrowCPPg++13.3.0Success4,235
Apr 20, 2026 20:21Charles CabergsCharles CabergsCPPg++13.3.0Error