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 23, 2026 22:51Charles CabergsCharles CabergsCPPg++13.3.0Error+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.0Error
Apr 23, 2026 05:45Charles CabergsCharles CabergsCPPg++13.3.0Error+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.0Error+168.97 RP
Apr 22, 2026 18:44Charles CabergsCharles CabergsCPPg++13.3.0Error+152.54 RP
Apr 22, 2026 16:37Charles CabergsCharles CabergsCPPg++13.3.0Error+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.1Error
Apr 22, 2026 05:27olliecrowolliecrowRUSTrust-1.95.0Success4,498
Apr 22, 2026 05:09olliecrowolliecrowGOgo1.26.2Success10,679
Apr 21, 2026 23:41olliecrowolliecrowZIG0.14.0Error
Apr 21, 2026 23:23olliecrowolliecrowRUSTrust-1.95.0Success4,899
Apr 21, 2026 21:15Charles CabergsCharles CabergsCPPg++13.3.0Error+338.03 RP
Apr 21, 2026 21:07BenBenCPPg++13.3.0Error+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.0Error
Apr 21, 2026 15:09limanjun99limanjun99CPPg++14.2.0Error+13.37 RP
Apr 21, 2026 14:59limanjun99limanjun99CPPg++14.2.0Error+28.42 RP
Apr 21, 2026 10:46limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 10:40limanjun99limanjun99CPPg++14.2.0Error+16.01 RP
Apr 21, 2026 10:37limanjun99limanjun99CPPg++14.2.0Error+411.33 RP
Apr 21, 2026 10:33limanjun99limanjun99CPPg++14.2.0Error+91.01 RP
Apr 21, 2026 10:27limanjun99limanjun99CPPg++14.2.0Error+24.41 RP
Apr 21, 2026 10:20limanjun99limanjun99CPPg++14.2.0Error+33.43 RP
Apr 21, 2026 10:16limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 10:10limanjun99limanjun99CPPg++14.2.0Error+117.68 RP
Apr 21, 2026 10:05limanjun99limanjun99CPPg++14.2.0Error+8.56 RP
Apr 21, 2026 09:53limanjun99limanjun99CPPg++14.2.0Error
Apr 21, 2026 09:47limanjun99limanjun99CPPg++14.2.0Error+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
Apr 20, 2026 19:07Charles CabergsCharles CabergsCPPg++13.3.0Success10,828+12.37 RP
Apr 20, 2026 18:05Charles CabergsCharles CabergsCPPg++13.3.0Success11,204
Apr 20, 2026 16:25BenBenCPPg++14.2.0Error+69.91 RP
Apr 20, 2026 15:22BenBenCPPclang++18.1.3Error+193.72 RP
Apr 20, 2026 15:00BenBenCPPclang++18.1.3Error
Apr 20, 2026 14:13BenBenCPPclang++18.1.3Error
Apr 20, 2026 14:07BenBenCPPg++14.2.0Error
Apr 20, 2026 14:07BenBenCPPg++13.3.0Error
Apr 20, 2026 14:07BenBenCPPclang++18.1.3Error
Apr 20, 2026 13:52olliecrowolliecrowZIG0.14.0Success7,277+2.07 RP
Apr 20, 2026 13:50olliecrowolliecrowRUSTrust-1.94.0Success9,696
Apr 20, 2026 13:44olliecrowolliecrowCPPg++13.3.0Success4,571
Apr 20, 2026 13:36Dominique GarmierDominique GarmierRUSTrust-1.95.0Success5,629
Apr 20, 2026 13:32Dominique GarmierDominique GarmierCPPclang++18.1.3Success8,712
Apr 19, 2026 04:22olliecrowolliecrowCPPclang++18.1.3Success4,274
Apr 19, 2026 04:18olliecrowolliecrowCPPclang++18.1.3Success4,326
Apr 19, 2026 04:15Charles CabergsCharles CabergsCPPg++13.3.0Error+108.46 RP
Apr 18, 2026 21:23Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 18, 2026 15:03Charles CabergsCharles CabergsCPPg++13.3.0Success12,458+20.41 RP
Apr 18, 2026 14:48olliecrowolliecrowCSHARP9.0.14Success8,656
Apr 18, 2026 11:35Charles CabergsCharles CabergsCPPg++13.3.0Success20,439
Apr 18, 2026 08:01Charles CabergsCharles CabergsCPPg++13.3.0Error+782.29 RP
Apr 18, 2026 05:23Charles CabergsCharles CabergsCPPg++13.3.0Error
Apr 18, 2026 01:25olliecrowolliecrowCSHARP9.0.14Success7,492
Apr 18, 2026 00:28olliecrowolliecrowCSHARP9.0.14Success9,098
Apr 17, 2026 02:59olliecrowolliecrowRUSTrust-1.94.0Success4,476
Apr 17, 2026 02:55olliecrowolliecrowRUSTrust-1.94.0Success4,426
Apr 17, 2026 02:10olliecrowolliecrowRUSTrust-1.94.0Success4,215+17.88 RP