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
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
Oct 8, 2026 03:50Karthik ReddyKarthik ReddyCPPg++14.2.0Error
Oct 6, 2026 12:22janwwwjanwwwCPPg++14.2.0Success138,452+72.23 RP
Sep 26, 2026 20:21Kevin HeaveyKevin HeaveyCSHARP9.0.18Success2,364+792.51 RP
Sep 26, 2026 20:13Kevin HeaveyKevin HeaveyGOgo1.26.2Success2,374+738.87 RP
Sep 26, 2026 20:07Kevin HeaveyKevin HeaveyZIG0.15.1Success2,359+1'007.02 RP
Sep 26, 2026 20:01Kevin HeaveyKevin HeaveyRUSTrust-1.95.0Success2,369+481.47 RP
Sep 25, 2026 21:20Kevin HeaveyKevin HeaveyCPPg++13.3.0Success2,347
Sep 25, 2026 13:40Kevin HeaveyKevin HeaveyCPPg++13.3.0Success2,343+36.28 RP
Sep 25, 2026 13:31Kevin HeaveyKevin HeaveyCPPg++13.3.0Success2,353+59.15 RP
Sep 25, 2026 13:24Kevin HeaveyKevin HeaveyCPPg++13.3.0Success2,374+143.95 RP
Sep 25, 2026 13:06Kevin HeaveyKevin HeaveyCPPg++13.3.0Success2,458+4'068.35 RP
Sep 25, 2026 12:09Kevin HeaveyKevin HeaveyCPPg++14.2.0Error
Sep 25, 2026 11:59Kevin HeaveyKevin HeaveyCPPg++14.2.0Error
Sep 25, 2026 11:57Kevin HeaveyKevin HeaveyCPPg++14.2.0Error
Sep 25, 2026 11:55Kevin HeaveyKevin HeaveyCPPg++14.2.0Error
Sep 25, 2026 11:55Kevin HeaveyKevin HeaveyCPPg++14.2.0Error
Sep 23, 2026 18:22Matthias GörgensMatthias GörgensCPPclang++19.1.1Success28,085+356.06 RP
Sep 19, 2026 13:33Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success76,677
Sep 19, 2026 13:28Andrew EpsteinAndrew EpsteinCPPg++14.2.0Success3,233
Sep 17, 2026 20:31Andrew EpsteinAndrew EpsteinZIG0.15.1Success3,094+714.44 RP
Sep 17, 2026 20:09Andrew EpsteinAndrew EpsteinZIG0.15.1Success3,993
Sep 17, 2026 16:14Victor MerckléVictor MerckléCSHARP10.0.7Success226,380
Sep 17, 2026 15:25Victor MerckléVictor MerckléCSHARP10.0.7Success208,026
Sep 17, 2026 14:15Victor MerckléVictor MerckléCPPg++14.2.0Success2,592
Sep 17, 2026 14:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,580
Sep 17, 2026 13:48Victor MerckléVictor MerckléCPPg++14.2.0Success2,621
Sep 17, 2026 13:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,577
Sep 17, 2026 13:17Victor MerckléVictor MerckléCPPg++14.2.0Success2,580
Sep 16, 2026 20:59Andrew EpsteinAndrew EpsteinZIG0.15.1Success3,972+168.55 RP
Sep 16, 2026 20:52Andrew EpsteinAndrew EpsteinZIG0.15.1Success4,311
Sep 16, 2026 16:32Victor MerckléVictor MerckléCPPg++14.2.0Success2,584
Sep 16, 2026 16:24Victor MerckléVictor MerckléCPPg++14.2.0Success2,605
Sep 16, 2026 16:13Victor MerckléVictor MerckléCPPg++14.2.0Success2,596
Sep 16, 2026 16:03Victor MerckléVictor MerckléCPPg++14.2.0Success2,694
Sep 16, 2026 15:22Victor MerckléVictor MerckléCPPg++14.2.0Success2,695
Sep 16, 2026 15:14Victor MerckléVictor MerckléCPPg++14.2.0Success2,697
Sep 16, 2026 15:02Victor MerckléVictor MerckléCPPg++14.2.0Success2,698
Sep 16, 2026 14:54Victor MerckléVictor MerckléCPPg++14.2.0Success2,703