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
Apr 22, 2024 01:52Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success4,652
Apr 22, 2024 01:48Joad NacerJoad NacerCPPg++9.4.0Success4,420
Apr 22, 2024 01:48Joad NacerJoad NacerCPPg++9.4.0Success4,086
Apr 22, 2024 01:48Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:46Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:45Joad NacerJoad NacerCPPg++9.4.0Success3,985
Apr 22, 2024 01:44Joad NacerJoad NacerCPPg++9.4.0Success3,975
Apr 22, 2024 01:43Joad NacerJoad NacerCPPg++9.4.0Success3,941
Apr 22, 2024 01:43Joad NacerJoad NacerCPPg++9.4.0Success4,447
Apr 22, 2024 01:42Joad NacerJoad NacerCPPg++9.4.0Success4,062
Apr 22, 2024 01:42Joad NacerJoad NacerCPPg++9.4.0Success4,025
Apr 22, 2024 01:42Joad NacerJoad NacerCPPg++9.4.0Success4,352
Apr 22, 2024 01:42Joad NacerJoad NacerCPPg++9.4.0Success4,341
Apr 22, 2024 01:41Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:41Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:41Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:41Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:40Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:40Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:40Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:37Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:37Joad NacerJoad NacerCPPg++9.4.0Success3,951
Apr 22, 2024 01:35Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:35Joad NacerJoad NacerCPPg++9.4.0Success3,689+52.40 RP
Apr 22, 2024 01:34Joad NacerJoad NacerCPPg++9.4.0Success3,725+122.54 RP
Apr 22, 2024 01:33Joad NacerJoad NacerCPPg++9.4.0Success3,942
Apr 22, 2024 01:32Joad NacerJoad NacerCPPg++9.4.0Success3,959
Apr 22, 2024 01:32Joad NacerJoad NacerCPPg++9.4.0Success4,010
Apr 22, 2024 01:28Joad NacerJoad NacerCPPclang++10.0.0Success4,021
Apr 22, 2024 01:27Joad NacerJoad NacerCPPg++9.4.0Success4,015
Apr 22, 2024 01:24Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 01:22Joad NacerJoad NacerCPPg++9.4.0Success3,879
Apr 22, 2024 01:21Joad NacerJoad NacerCPPclang++10.0.0Success3,911
Apr 22, 2024 01:20Joad NacerJoad NacerCPPg++9.4.0Success3,853
Apr 22, 2024 01:19Joad NacerJoad NacerCPPg++9.4.0Success4,102
Apr 22, 2024 01:16Joad NacerJoad NacerCPPclang++10.0.0Success4,138
Apr 22, 2024 01:15Joad NacerJoad NacerCPPg++9.4.0Success3,906
Apr 22, 2024 01:12Joad NacerJoad NacerCPPg++9.4.0Success4,023
Apr 22, 2024 01:12Joad NacerJoad NacerCPPclang++10.0.0Success3,812+63.90 RP
Apr 22, 2024 01:04Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 22, 2024 01:00Joad NacerJoad NacerCPPclang++10.0.0Success4,165
Apr 22, 2024 01:00Joad NacerJoad NacerCPPg++9.4.0Success4,254
Apr 22, 2024 00:30Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 00:29Joad NacerJoad NacerCPPg++9.4.0Error
Apr 22, 2024 00:29Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 22, 2024 00:25Joad NacerJoad NacerCPPclang++10.0.0Success4,042
Apr 22, 2024 00:24Joad NacerJoad NacerCPPg++9.4.0Success4,264
Apr 22, 2024 00:19Joad NacerJoad NacerCPPg++9.4.0Success4,030
Apr 22, 2024 00:17Joad NacerJoad NacerCPPclang++10.0.0Success3,928
Apr 22, 2024 00:15Joad NacerJoad NacerCPPclang++10.0.0Success4,115
Apr 22, 2024 00:11Joad NacerJoad NacerCPPclang++10.0.0Success4,133
Apr 22, 2024 00:05Joad NacerJoad NacerCPPclang++10.0.0Success4,035
Apr 22, 2024 00:01Joad NacerJoad NacerCPPclang++10.0.0Success4,433
Apr 22, 2024 00:01Joad NacerJoad NacerCPPclang++10.0.0Success4,800
Apr 22, 2024 00:00Joad NacerJoad NacerCPPclang++10.0.0Success3,962
Apr 21, 2024 23:59Joad NacerJoad NacerCPPclang++10.0.0Success4,198
Apr 21, 2024 23:58Joad NacerJoad NacerCPPclang++10.0.0Success4,449
Apr 21, 2024 23:55Joad NacerJoad NacerCPPclang++10.0.0Success4,032
Apr 21, 2024 23:54Joad NacerJoad NacerCPPclang++10.0.0Success4,064
Apr 21, 2024 23:51Joad NacerJoad NacerCPPclang++10.0.0Success4,284
Apr 21, 2024 23:51Joad NacerJoad NacerCPPclang++10.0.0Success4,072
Apr 21, 2024 23:39Joad NacerJoad NacerCPPclang++10.0.0Success4,036
Apr 21, 2024 23:37Joad NacerJoad NacerCPPclang++10.0.0Success4,044
Apr 21, 2024 23:36Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 21, 2024 23:34Joad NacerJoad NacerCPPclang++10.0.0Error
Apr 21, 2024 23:34Joad NacerJoad NacerCPPclang++10.0.0Success3,937
Apr 21, 2024 23:33Joad NacerJoad NacerCPPclang++10.0.0Success3,859+228.52 RP
Apr 21, 2024 23:31Joad NacerJoad NacerCPPg++9.4.0Success4,037+444.60 RP
Apr 21, 2024 23:20Joad NacerJoad NacerCPPg++9.4.0Success4,621
Apr 21, 2024 23:19Joad NacerJoad NacerCPPclang++10.0.0Success4,435+240.76 RP
Apr 21, 2024 23:08Joad NacerJoad NacerCPPclang++10.0.0Success4,727+117.11 RP
Apr 21, 2024 23:08Joad NacerJoad NacerCPPg++9.4.0Success5,004+190.08 RP
Apr 21, 2024 23:07Joad NacerJoad NacerCPPg++9.4.0Success5,530+1.31 RP
Apr 21, 2024 23:06Joad NacerJoad NacerCPPg++9.4.0Success5,549
Apr 21, 2024 23:05Joad NacerJoad NacerCPPg++9.4.0Success5,534+1'507.47 RP
Apr 21, 2024 23:04Joad NacerJoad NacerCPPg++9.4.0Success33,384+0.38 RP
Apr 21, 2024 23:02Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:54Joad NacerJoad NacerCPPclang++10.0.0Success33,426+0.87 RP
Apr 21, 2024 22:53Joad NacerJoad NacerCPPg++9.4.0Success33,523+238.73 RP
Apr 21, 2024 22:50Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:49Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:48Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:46Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:45Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:44Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:43Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:43Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:43Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:42Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:42Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:28Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:28Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:27Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:26Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:26Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:19Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:19Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:19Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:17Joad NacerJoad NacerCPPg++9.4.0Error
Apr 21, 2024 22:14Joad NacerJoad NacerCPPg++9.4.0Error