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
Nov 8, 2026 06:01highload-churnerhighload-churnerCPPg++13.3.0Success2,310
Nov 8, 2026 05:49highload-churnerhighload-churnerCPPg++13.3.0Success2,301+15.08 RP
Nov 8, 2026 05:21highload-churnerhighload-churnerCPPg++13.3.0Success2,305+18.75 RP
Nov 8, 2026 05:11highload-churnerhighload-churnerCPPg++13.3.0Success2,323
Nov 8, 2026 04:58highload-churnerhighload-churnerCPPg++13.3.0Success2,316
Nov 5, 2026 13:34janwwwjanwwwCPPclang++20.1.2Success3,919
Nov 5, 2026 08:45Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,320+80.23 RP
Nov 5, 2026 08:32Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,548
Nov 5, 2026 08:21Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,460
Nov 5, 2026 08:15Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,351
Nov 5, 2026 08:05Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,306+92.56 RP
Nov 5, 2026 08:01Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,376
Nov 5, 2026 07:49Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,461
Nov 5, 2026 07:34Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success23,207
Nov 5, 2026 07:22Andrew EpsteinAndrew EpsteinCSHARP9.0.18Error
Nov 5, 2026 07:18Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,351
Nov 5, 2026 06:33Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,388
Nov 5, 2026 06:19Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success3,325
Nov 5, 2026 06:05Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success4,900
Nov 5, 2026 05:29Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,593
Nov 5, 2026 05:25Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,390
Nov 5, 2026 05:24Andrew EpsteinAndrew EpsteinZIG0.15.1Success2,348+21.67 RP
Nov 5, 2026 05:24Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success2,355+25.09 RP
Nov 5, 2026 05:24Andrew EpsteinAndrew EpsteinGOgo1.26.2Success2,349+52.21 RP
Nov 5, 2026 05:17Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,359+3.59 RP
Nov 5, 2026 05:07Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,407
Nov 5, 2026 05:06Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,372
Nov 5, 2026 05:06Andrew EpsteinAndrew EpsteinGOgo1.26.2Success2,368+10.67 RP
Nov 5, 2026 04:53Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,381
Nov 5, 2026 04:53Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,435
Nov 5, 2026 04:53Andrew EpsteinAndrew EpsteinZIG0.15.1Success2,438
Nov 5, 2026 04:53Andrew EpsteinAndrew EpsteinRUSTrust-1.95.0Success2,451
Nov 5, 2026 04:52Andrew EpsteinAndrew EpsteinGOgo1.26.2Success2,575
Nov 5, 2026 04:51Andrew EpsteinAndrew EpsteinCSHARP9.0.18Success2,468
Nov 5, 2026 04:50Andrew EpsteinAndrew EpsteinGOgo1.26.2Success2,439
Nov 5, 2026 04:38Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,363
Nov 5, 2026 04:35Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,393
Nov 5, 2026 04:01Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,361+19.64 RP
Nov 3, 2026 13:41Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,377
Nov 3, 2026 13:24Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,385
Nov 3, 2026 13:07Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success51,742
Nov 3, 2026 12:58Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,372+15.94 RP
Nov 3, 2026 12:57Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,387
Nov 3, 2026 12:40Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,385
Nov 3, 2026 12:18Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success56,703
Nov 3, 2026 12:17Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,397
Nov 3, 2026 12:07Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,384
Nov 3, 2026 12:01Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,390
Nov 3, 2026 11:55Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,390
Nov 3, 2026 11:12Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,381+12.31 RP
Nov 3, 2026 10:41Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success142,329
Nov 3, 2026 10:36Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,449
Nov 3, 2026 10:21Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,388+22.67 RP
Nov 3, 2026 10:15Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success4,764
Nov 3, 2026 10:13Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success143,529
Nov 3, 2026 09:59Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,401+30.99 RP
Nov 3, 2026 09:44Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,426
Nov 3, 2026 09:38Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,428
Nov 3, 2026 09:37Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,426
Nov 3, 2026 09:35Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,474
Nov 3, 2026 09:35Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,428
Nov 3, 2026 08:52Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success145,383
Nov 3, 2026 08:46Andrew EpsteinAndrew EpsteinCPPclang++20.1.2Success2,423
Nov 3, 2026 08:46Andrew EpsteinAndrew EpsteinCPPg++13.3.0Success2,419+23.79 RP
Nov 3, 2026 08:24Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,442
Nov 3, 2026 08:19Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,496
Nov 3, 2026 07:59Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,444
Nov 3, 2026 07:59Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,031
Nov 3, 2026 07:46Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,441
Nov 3, 2026 07:28Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,433+10.11 RP
Nov 3, 2026 07:20Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,440
Nov 3, 2026 07:08Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,439+51.46 RP
Nov 3, 2026 06:46Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,470+111.58 RP
Nov 3, 2026 06:18Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success145,002
Nov 3, 2026 05:47Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,545
Nov 3, 2026 05:22Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,547
Nov 3, 2026 05:17Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,540+18.51 RP
Nov 3, 2026 05:06Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,586
Nov 3, 2026 05:00Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success54,760
Nov 3, 2026 04:58Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,610
Nov 3, 2026 04:41Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,018
Nov 3, 2026 04:28Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,934
Nov 3, 2026 04:28Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,980
Nov 3, 2026 04:26Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,160
Nov 3, 2026 04:26Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,955
Nov 3, 2026 04:20Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,552+78.25 RP
Nov 3, 2026 04:20Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,741
Nov 3, 2026 04:19Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,607
Nov 3, 2026 04:18Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,766
Nov 3, 2026 03:59Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,604+207.84 RP
Nov 3, 2026 03:59Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,753+9.21 RP
Nov 3, 2026 03:23Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,760+195.01 RP
Nov 3, 2026 03:23Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,956
Nov 3, 2026 03:23Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success2,957
Nov 3, 2026 02:49Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,204
Nov 3, 2026 02:49Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,148
Nov 3, 2026 02:49Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success74,891
Nov 3, 2026 02:19Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,249
Nov 3, 2026 02:19Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,216
Nov 3, 2026 02:13Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success30,068