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
May 1, 2025 11:02KeefeKeefeCPPg++13.3.0Error
May 1, 2025 10:56KeefeKeefeCPPg++13.3.0Error
May 1, 2025 01:17KeefeKeefeCPPg++13.3.0Error
May 1, 2025 01:02KeefeKeefeCPPg++13.3.0Success27,138+129.02 RP
May 1, 2025 01:01KeefeKeefeCPPg++13.3.0Error
May 1, 2025 00:50KeefeKeefeCPPg++13.3.0Success41,759+85.95 RP
Apr 30, 2025 23:35Aniruddha DebAniruddha DebCPPg++13.3.0Success6,008+15.37 RP
Apr 30, 2025 23:29Aniruddha DebAniruddha DebCPPg++13.3.0Success6,064+1'548.86 RP
Apr 30, 2025 23:20Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 23:19Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:52Aniruddha DebAniruddha DebCPPg++13.3.0Success100,811
Apr 30, 2025 22:41Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:40Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:39Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:38Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:35Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:34Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 22:32Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 30, 2025 18:11Aniruddha DebAniruddha DebCPPg++13.3.0Success101,153
Apr 30, 2025 18:08Aniruddha DebAniruddha DebCPPg++13.3.0Success101,177
Apr 30, 2025 17:42Aniruddha DebAniruddha DebCPPg++13.3.0Success100,018
Apr 29, 2025 08:31etherealetherealGOgo1.24.2Success62,633+159.66 RP
Apr 28, 2025 15:13etherealetherealGOgo1.24.2Error
Apr 28, 2025 15:11etherealetherealGOgo1.24.2Error
Apr 22, 2025 18:05Aniruddha DebAniruddha DebCPPg++13.3.0Success99,785+100.22 RP
Apr 22, 2025 18:03Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 22, 2025 18:01Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 22, 2025 17:59Aniruddha DebAniruddha DebCPPg++13.3.0Error
Apr 22, 2025 16:05KeefeKeefeCPPg++13.3.0Error
Apr 22, 2025 16:03KeefeKeefeCPPg++13.3.0Error
Apr 22, 2025 15:59KeefeKeefeCPPg++13.3.0Error
Apr 9, 2025 17:35NoSIMD_C#NoSIMD_C#CSHARP9.0.4Error
Apr 8, 2025 07:19NoSIMD_C#NoSIMD_C#CPPg++13.2.0Error
Apr 6, 2025 21:41Joad NacerJoad NacerCPPg++13.2.0Error
Apr 6, 2025 21:41Joad NacerJoad NacerCPPclang++18.1.3Error
Apr 6, 2025 21:12Aniruddha DebAniruddha DebCPPg++13.2.0Error
Apr 4, 2025 13:00NoSIMD_C#NoSIMD_C#CSHARP9.0.3Error
Feb 28, 2025 05:25NoSIMD_C#NoSIMD_C#CSHARP10.0.0-preview.1Success18,535
Feb 3, 2025 13:40Andrey LikhachevAndrey LikhachevRUSTrust-1.84.1Error
Feb 3, 2025 05:30NoSIMD_C#NoSIMD_C#CPPg++13.2.0Error
Feb 2, 2025 18:48HighloadGPT-o3-mini-highHighloadGPT-o3-mini-highCPPg++13.2.0Success72,656+1.93 RP
Feb 2, 2025 18:46HighloadGPT-o3-mini-highHighloadGPT-o3-mini-highCPPclang++18.1.3Success73,690+135.70 RP
Jan 29, 2025 22:16KeefeKeefeCPPclang++18.1.3Success65,140+0.10 RP
Jan 29, 2025 22:08KeefeKeefeCPPclang++18.1.3Success65,184+153.41 RP
Jan 23, 2025 08:32NoSIMD_C#NoSIMD_C#CSHARP9.0.1Success18,302
Jan 22, 2025 04:01Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 22, 2025 03:23Ian MckibbenIan MckibbenCPPclang++18.1.3Error
Jan 21, 2025 07:37NoSIMD_C#NoSIMD_C#CSHARP9.0.1Success18,485
Jan 20, 2025 16:24Oleg KovalovOleg KovalovGOgo1.23.5Success1,027,383
Jan 20, 2025 16:16BlankBot-0BlankBot-0GOgo1.23.4Success1,385,347+7.22 RP
Jan 20, 2025 16:07BlankBot-0BlankBot-0GOgo1.23.4Error
Jan 11, 2025 11:41Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,630+17.70 RP
Jan 11, 2025 11:35Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,849
Jan 11, 2025 11:34Mikhail ShirokovMikhail ShirokovCPPclang++18.1.3Success10,302
Jan 11, 2025 11:31Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,797+5.70 RP
Jan 11, 2025 11:28Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,852+0.51 RP
Jan 11, 2025 11:19Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,857+1.44 RP
Jan 11, 2025 11:17Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,900
Jan 11, 2025 11:16Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,871+9.66 RP
Jan 11, 2025 11:15Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Jan 11, 2025 11:12Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Jan 11, 2025 11:10Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Jan 11, 2025 10:57Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success9,966+28.28 RP
Jan 11, 2025 10:47Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success10,255+0.67 RP
Jan 11, 2025 10:39Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success10,262+44.50 RP
Jan 11, 2025 10:36Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success11,131
Jan 11, 2025 10:34Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success10,871
Jan 11, 2025 10:31Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success10,753+375.28 RP
Jan 11, 2025 10:29Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Jan 11, 2025 10:24Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,089
Jan 11, 2025 10:22Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,135
Jan 11, 2025 10:11Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,028+0.98 RP
Dec 31, 2024 07:44Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,060+11.50 RP
Dec 31, 2024 07:38Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,443+1.47 RP
Dec 31, 2024 07:32Mikhail ShirokovMikhail ShirokovCPPclang++18.1.3Success18,972
Dec 31, 2024 07:32Mikhail ShirokovMikhail ShirokovCPPclang++18.1.3Success19,296
Dec 31, 2024 07:31Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,869
Dec 31, 2024 07:29Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Dec 31, 2024 07:27Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Dec 31, 2024 06:52Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,493+7.13 RP
Dec 31, 2024 06:46Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,740+2.92 RP
Dec 31, 2024 06:41Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success18,843+101.48 RP
Dec 31, 2024 06:39Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success23,298+58.69 RP
Dec 31, 2024 06:36Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success26,988+1.89 RP
Dec 31, 2024 06:32Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success27,126+11.44 RP
Dec 31, 2024 06:19Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success27,995+6.03 RP
Dec 31, 2024 06:12Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success28,476+20.78 RP
Dec 31, 2024 06:06Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Dec 31, 2024 06:05Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Dec 31, 2024 06:04Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Dec 31, 2024 06:03Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Error
Dec 31, 2024 06:00Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success30,267+37.02 RP
Dec 31, 2024 05:56Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success34,086+13.14 RP
Dec 31, 2024 05:47Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success35,684+22.97 RP
Dec 31, 2024 05:43Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success38,892
Dec 30, 2024 16:14Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success38,870+36.76 RP
Dec 30, 2024 16:04Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success45,350+2.19 RP
Dec 30, 2024 15:55Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success45,805+1.63 RP
Dec 30, 2024 15:46Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success57,678
Dec 30, 2024 15:23Mikhail ShirokovMikhail ShirokovCPPg++13.2.0Success46,150+44.71 RP