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 31, 2021 13:41Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success9,908
Oct 31, 2021 13:40Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success9,891
Oct 31, 2021 13:40Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success10,295
Oct 31, 2021 13:39Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success10,304
Oct 31, 2021 13:38Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success9,885+299.48 RP
Oct 31, 2021 13:20Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 13:02Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success14,042+29.60 RP
Oct 31, 2021 12:59Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success14,651+37.93 RP
Oct 31, 2021 12:55Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 12:54Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 12:54Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 12:45Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 12:44Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success15,513+2.15 RP
Oct 31, 2021 12:42Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 12:36Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success15,565+2.22 RP
Oct 31, 2021 12:35Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success15,661
Oct 31, 2021 12:35Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Error
Oct 31, 2021 12:08Ilya AniskovetsIlya AniskovetsCPPclang++10.0.0Success15,619+240.13 RP
Oct 31, 2021 12:07Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success24,993+281.29 RP
Oct 31, 2021 12:03Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:59Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:57Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:55Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:55Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:44Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success1,239,013
Oct 31, 2021 11:41Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success1,238,860
Oct 31, 2021 11:37Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:35Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Oct 31, 2021 11:21Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success84,162+0.54 RP
Sep 18, 2021 20:42Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:38Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:38Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:26Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:22Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success92,969
Sep 18, 2021 20:18Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success84,547+31.44 RP
Sep 18, 2021 20:13Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success115,152+57.32 RP
Sep 18, 2021 20:11Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:10Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:09Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:06Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:05Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 20:02Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:56Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:52Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:48Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:46Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:43Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:41Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:30Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:30Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:24Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:21Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:18Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:13Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Success338,787+29.52 RP
Sep 18, 2021 19:11Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:09Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 19:07Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:59Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:56Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:53Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:52Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:49Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:45Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:42Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:41Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:41Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:37Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:34Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:32Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:28Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:27Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:24Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:24Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:22Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:19Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 18:17Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 17:56Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Sep 18, 2021 17:54Ilya AniskovetsIlya AniskovetsCPPg++9.3.0Error
Aug 21, 2021 19:01Yuriy LyfenkoYuriy LyfenkoCPPclang++10.0.0Success4,644+1'639.07 RP
Aug 21, 2021 19:00Yuriy LyfenkoYuriy LyfenkoCPPg++9.3.0Error
Aug 21, 2021 17:56Yuriy LyfenkoYuriy LyfenkoCPPg++9.3.0Error
Jul 17, 2021 10:30Yurkov AlekseyYurkov AlekseyCPPSuccess12,807
Jul 17, 2021 10:30Yurkov AlekseyYurkov AlekseyCPPSuccess14,208
Jul 17, 2021 09:27Yurkov AlekseyYurkov AlekseyCPPSuccess12,754
Jul 3, 2021 09:08gchebanovgchebanovCPPError
Jun 6, 2021 19:04Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,625
Jun 6, 2021 19:02Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,608
Jun 6, 2021 19:00Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,589
Jun 6, 2021 18:59Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,563
Jun 6, 2021 18:58Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,647
Jun 6, 2021 18:57Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,620
Jun 2, 2021 18:56Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,575
Jun 2, 2021 18:54Yuriy LyfenkoYuriy LyfenkoCPPSuccess9,583
May 29, 2021 14:43Yuriy LyfenkoYuriy LyfenkoCPPSuccess14,214
May 28, 2021 01:06Yurkov AlekseyYurkov AlekseyCPPSuccess12,757
May 28, 2021 01:05Yurkov AlekseyYurkov AlekseyCPPSuccess12,947
May 28, 2021 01:03Yurkov AlekseyYurkov AlekseyCPPSuccess13,336
May 28, 2021 01:02Yurkov AlekseyYurkov AlekseyCPPSuccess12,935
May 28, 2021 01:01Yurkov AlekseyYurkov AlekseyCPPSuccess12,936
May 28, 2021 01:00Yurkov AlekseyYurkov AlekseyCPPSuccess12,741