使用数组反序列化Json

本文关键字:Json 反序列化 数组 | 更新日期: 2023-09-27 18:22:38

我需要反序列化一个json,如下所示:

[[[[{"string1":"AB","date1":"01/01/1900 8:59:00","date2":"01/01/1900 9:28:00","col":["VO","SC","VD","LF","SR","TT","BN","MM","HH","HH","YY","ZZ"]}],[{"string1":"AB","date1":"01/01/1900 9:02:00","date2":"01/01/1900 9:30:00","col":["VO","SC","VD","LF","LP","VV","FF","MM","HH","HH","YY","ZZ"]}]]]]

我尝试了以下代码:

JavaScriptSerializer serializer = new JavaScriptSerializer();
        js = new JavaScriptSerializer();
        var d = js.Deserialize<dynamic>(json);

但我遗漏了一些东西,无法正确获取信息。

使用数组反序列化Json

数组的数组的数组数组的数组。一个纯粹的工程天才一定设计了这种数据结构。

无论如何,以下是如何反序列化和访问其属性:

string json = "[[[[{'"string1'":'"AB'",'"date1'":'"01/01/1900 8:59:00'",'"date2'":'"01/01/1900 9:28:00'",'"col'":['"VO'",'"SC'",'"VD'",'"LF'",'"SR'",'"TT'",'"BN'",'"MM'",'"HH'",'"HH'",'"YY'",'"ZZ'"]}],[{'"string1'":'"AB'",'"date1'":'"01/01/1900 9:02:00'",'"date2'":'"01/01/1900 9:30:00'",'"col'":['"VO'",'"SC'",'"VD'",'"LF'",'"LP'",'"VV'",'"FF'",'"MM'",'"HH'",'"HH'",'"YY'",'"ZZ'"]}]]]]";
JavaScriptSerializer serializer = new JavaScriptSerializer();
var d = serializer.Deserialize<dynamic>(json);
foreach (dynamic item in d[0][0][0])
{
    Console.WriteLine(item["string1"]);
    Console.WriteLine(item["date1"]);
    Console.WriteLine(item["date2"]);
    ...
}

您的json是有效的

[
    [
        [
            [
                {
                    "string1": "AB",
                    "date1": "01/01/1900 8:59:00",
                    "date2": "01/01/1900 9:28:00",
                    "col": [
                        "VO",
                        "SC",
                        "VD",
                        "LF",
                        "SR",
                        "TT",
                        "BN",
                        "MM",
                        "HH",
                        "HH",
                        "YY",
                        "ZZ"
                    ]
                }
            ],
            [
                {
                    "string1": "AB",
                    "date1": "01/01/1900 9:02:00",
                    "date2": "01/01/1900 9:30:00",
                    "col": [
                        "VO",
                        "SC",
                        "VD",
                        "LF",
                        "LP",
                        "VV",
                        "FF",
                        "MM",
                        "HH",
                        "HH",
                        "YY",
                        "ZZ"
                    ]
                }
            ]
        ]
    ]
]

我在jsonlint.com 上查看

我认为你的问题是因为你有嵌套数组。