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 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
Nov 3, 2026 01:54Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success5,285
Nov 3, 2026 01:54Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success5,042
Nov 3, 2026 01:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,465
Nov 3, 2026 01:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,186
Nov 3, 2026 01:37Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,197
Nov 3, 2026 01:30Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,472
Nov 3, 2026 01:30Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,525
Nov 3, 2026 01:30Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,305
Oct 19, 2026 04:08zayd-ansari-codezayd-ansari-codeCPPg++10.5.0Success150,960+66.24 RP
Oct 18, 2026 09:15KacpxerKacpxerCPPg++14.2.0Error+282.41 RP
Oct 18, 2026 09:02KacpxerKacpxerCPPg++14.2.0Error
Oct 17, 2026 12:39highload-churnerhighload-churnerCPPg++13.3.0Success2,314+96.04 RP
Oct 17, 2026 09:59KacpxerKacpxerCPPg++10.5.0Error
Oct 17, 2026 09:53KacpxerKacpxerCPPclang++20.1.2Error
Oct 17, 2026 08:05janwwwjanwwwRUSTrust-1.95.0Success3,568
Oct 17, 2026 07:15janwwwjanwwwZIG0.15.1Error+12.04 RP
Oct 16, 2026 03:54highload-churnerhighload-churnerCPPg++13.3.0Success2,340+59.56 RP
Oct 16, 2026 03:29highload-churnerhighload-churnerCPPg++13.3.0Success2,399
Oct 16, 2026 03:11highload-churnerhighload-churnerCPPg++13.3.0Success2,507
Oct 16, 2026 03:07highload-churnerhighload-churnerCPPg++13.3.0Success2,370+7.11 RP
Oct 16, 2026 01:57highload-churnerhighload-churnerCPPg++13.3.0Success2,972
Oct 16, 2026 01:42highload-churnerhighload-churnerCPPg++13.3.0Success6,815
Oct 16, 2026 01:05highload-churnerhighload-churnerCPPg++13.3.0Success6,592
Oct 15, 2026 23:33highload-churnerhighload-churnerCPPg++13.3.0Success5,351
Oct 15, 2026 23:18highload-churnerhighload-churnerCPPg++13.3.0Success6,269
Oct 15, 2026 22:12highload-churnerhighload-churnerCPPg++13.3.0Success4,592
Oct 15, 2026 21:44highload-churnerhighload-churnerCPPg++13.3.0Success6,348
Oct 15, 2026 21:30highload-churnerhighload-churnerCPPg++13.3.0Success10,020
Oct 15, 2026 21:23highload-churnerhighload-churnerCPPg++13.3.0Success6,597
Oct 15, 2026 21:11highload-churnerhighload-churnerCPPg++13.3.0Success6,760
Oct 15, 2026 20:59highload-churnerhighload-churnerCPPg++13.3.0Success6,553
Oct 15, 2026 20:46highload-churnerhighload-churnerCPPg++13.3.0Success2,378
Oct 15, 2026 20:32highload-churnerhighload-churnerCPPg++13.3.0Success6,472
Oct 15, 2026 20:15highload-churnerhighload-churnerCPPg++13.3.0Success2,374+202.68 RP
Oct 15, 2026 19:49highload-churnerhighload-churnerCPPg++13.3.0Success2,494+4.82 RP
Oct 15, 2026 19:22highload-churnerhighload-churnerCPPg++13.3.0Success2,509
Oct 15, 2026 18:56highload-churnerhighload-churnerCPPg++13.3.0Success2,963
Oct 15, 2026 18:24highload-churnerhighload-churnerCPPg++13.3.0Success2,506