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 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
Oct 15, 2026 17:42highload-churnerhighload-churnerCPPg++13.3.0Success2,497+11.20 RP
Oct 15, 2026 17:41highload-churnerhighload-churnerCPPg++13.3.0Success3,494
Oct 15, 2026 17:18highload-churnerhighload-churnerCPPg++13.3.0Success2,504+19.05 RP
Oct 15, 2026 16:17highload-churnerhighload-churnerCPPg++13.3.0Success2,516+32.90 RP
Oct 15, 2026 15:52highload-churnerhighload-churnerCPPg++13.3.0Success2,537+55.15 RP
Oct 15, 2026 15:37highload-churnerhighload-churnerCPPg++13.3.0Success2,573+38.88 RP
Oct 15, 2026 14:46highload-churnerhighload-churnerCPPg++13.3.0Success2,599
Oct 15, 2026 14:06highload-churnerhighload-churnerCPPg++13.3.0Success2,599+82.57 RP
Oct 15, 2026 13:28highload-churnerhighload-churnerCPPg++13.3.0Success2,656+21.14 RP
Oct 15, 2026 11:37highload-churnerhighload-churnerCPPg++13.3.0Success2,671+82.25 RP
Oct 15, 2026 11:16highload-churnerhighload-churnerCPPg++13.3.0Success2,741
Oct 15, 2026 10:45highload-churnerhighload-churnerCPPg++13.3.0Success2,731+46.33 RP
Oct 15, 2026 10:16highload-churnerhighload-churnerCPPg++13.3.0Success2,766+36.23 RP
Oct 15, 2026 10:07highload-churnerhighload-churnerCPPg++13.3.0Success2,794+62.92 RP
Oct 15, 2026 09:38highload-churnerhighload-churnerCPPg++13.3.0Success2,844+36.70 RP
Oct 15, 2026 09:11highload-churnerhighload-churnerCPPg++13.3.0Success3,179
Oct 15, 2026 08:57highload-churnerhighload-churnerCPPg++13.3.0Success2,874+260.93 RP
Oct 15, 2026 07:41highload-churnerhighload-churnerCPPclang++18.1.3Success3,107+1'015.90 RP
Oct 15, 2026 06:18highload-churnerhighload-churnerCPPclang++18.1.3Success4,631
Oct 14, 2026 11:06Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,686
Oct 14, 2026 11:00Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,594
Oct 14, 2026 07:11Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,577
Oct 14, 2026 06:27Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,799
Oct 14, 2026 04:18Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,551
Oct 14, 2026 04:05Karthik ReddyKarthik ReddyZIG0.15.1Success3,579
Oct 14, 2026 03:59Karthik ReddyKarthik ReddyRUSTrust-1.95.0Success3,576
Oct 14, 2026 03:52Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,553
Oct 14, 2026 03:45Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,562
Oct 14, 2026 02:42Karthik ReddyKarthik ReddyZIG0.15.1Success3,019
Oct 14, 2026 02:37Karthik ReddyKarthik ReddyRUSTrust-1.95.0Success3,007
Oct 14, 2026 02:12Karthik ReddyKarthik ReddyCPPclang++18.1.3Success2,999
Oct 14, 2026 00:56Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,383
Oct 14, 2026 00:48Karthik ReddyKarthik ReddyCPPclang++18.1.3Success3,902
Oct 14, 2026 00:18highload-churnerhighload-churnerCPPclang++18.1.3Success4,540+110.59 RP
Oct 13, 2026 15:29highload-churnerhighload-churnerCPPclang++18.1.3Success4,780+544.30 RP
Oct 13, 2026 15:18highload-churnerhighload-churnerCPPclang++18.1.3Success6,461+77.38 RP
Oct 13, 2026 14:38highload-churnerhighload-churnerCPPg++14.2.0Success6,801+684.89 RP
Oct 13, 2026 13:50highload-churnerhighload-churnerCPPg++14.2.0Success15,481
Oct 11, 2026 01:26janwwwjanwwwCPPclang++20.1.2Error+632.69 RP
Oct 10, 2026 08:37janwwwjanwwwCPPg++14.2.0Error+2'336.83 RP
Oct 9, 2026 15:51highload-churnerhighload-churnerCPPg++14.2.0Success12,731
Oct 9, 2026 15:12highload-churnerhighload-churnerCPPg++14.2.0Error+5.92 RP
Oct 9, 2026 15:12highload-churnerhighload-churnerCPPg++14.2.0Error+803.60 RP
Oct 9, 2026 14:44Karthik ReddyKarthik ReddyCSHARP9.0.18Success2,720
Oct 9, 2026 08:17Karthik ReddyKarthik ReddyGOgo1.26.2Error+40.38 RP
Oct 9, 2026 08:13Karthik ReddyKarthik ReddyZIG0.15.1Error
Oct 9, 2026 07:27Karthik ReddyKarthik ReddyRUSTrust-1.95.0Error+11.40 RP
Oct 8, 2026 04:59Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+382.10 RP
Oct 8, 2026 04:51Karthik ReddyKarthik ReddyCPPclang++18.1.3Error+3'660.95 RP
Oct 8, 2026 04:14Karthik ReddyKarthik ReddyCPPg++14.2.0Success35,048
Oct 8, 2026 04:08Karthik ReddyKarthik ReddyCPPg++14.2.0Success33,943
Oct 8, 2026 04:05Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 04:04Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 04:03Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 04:02Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 04:00Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 03:58Karthik ReddyKarthik ReddyCPPg++14.2.0Error+310.45 RP
Oct 8, 2026 03:56Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 03:55Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 03:54Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 03:53Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 8, 2026 03:51Karthik ReddyKarthik ReddyCPPg++14.2.0Error