Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用数组反序列化Json_C#_Json_C# 4.0 - Fatal编程技术网

C# 使用数组反序列化Json

C# 使用数组反序列化Json,c#,json,c#-4.0,C#,Json,C# 4.0,我需要像这样反序列化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"

我需要像这样反序列化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);
JavaScriptSerializer serializer=新的JavaScriptSerializer();
js=新的JavaScriptSerializer();
var d=js.Deserialize(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"]);
    ...
}
“1/01/1900 8:59:00,”1/01/01/1900 8:59:00 00,”2“日期2”的,”,”,”,”日期2”的以下两个方面:1/01/01/01/1900 9:01/01/1900 9:01/1900 9:28:00\”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“date2\”:“01/01/1900 9:30:00\”,“col\”:[“VO\”,“SC\”,“VD\”,“LF\”,“LP\”,“VV\”,\”FF\“,”MM\“,”HH\“,”HH\“,”YY\“,”ZZ\“]}]]]”; JavaScriptSerializer serializer=新的JavaScriptSerializer(); var d=序列化程序。反序列化(json); foreach(d[0][0][0]中的动态项) { 控制台写入线(项目[“string1]”); Console.WriteLine(项目[“日期1]”); Console.WriteLine(项目[“日期2]”); ... }
数组的数组数组的数组。一个纯粹的工程天才一定设计了这种数据结构

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

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"]);
    ...
}
“1/01/1900 8:59:00,”1/01/01/1900 8:59:00 00,”2“日期2”的,”,”,”,”日期2”的以下两个方面:1/01/01/01/1900 9:01/01/1900 9:01/1900 9:28:00\”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“date2\”:“01/01/1900 9:30:00\”,“col\”:[“VO\”,“SC\”,“VD\”,“LF\”,“LP\”,“VV\”,\”FF\“,”MM\“,”HH\“,”HH\“,”YY\“,”ZZ\“]}]]]”; JavaScriptSerializer serializer=新的JavaScriptSerializer(); var d=序列化程序。反序列化(json); foreach(d[0][0][0]中的动态项) { 控制台写入线(项目[“string1]”); Console.WriteLine(项目[“日期1]”); Console.WriteLine(项目[“日期2]”); ... } 您的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上查过了

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

你的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上查过了


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

你会遇到什么异常?你没有展示你如何尝试访问数据
[[{
意味着很多数组…你确定你调用了正确数量的数组吗?例如
d[0][0][0]。string1
你会遇到什么异常?你没有展示你如何尝试访问数据
[[[[{
表示有很多数组…您确定调用的数组数量正确吗?例如
d[0][0][0]。string1
谢谢!这很好,但问题是,使用此代码我只得到第一个元素。如何获得列表或其他内容?
d[0][0]
是列表。您可以循环查看它。我已更新了我的答案以提供一个示例。我可以通过以下方式解决:
for(int I=0;我解决:
foreach(d[0][0]中的动态项){Console.WriteLine(项[0][“string1]”);Console.WriteLine(项[0][“date1]”);Console.WriteLine(项[0][“date2]”;…)
非常感谢大家!谢谢!这很好,但问题是,使用这段代码,我只能得到第一个元素。我如何才能得到列表或其他东西?
d[0][0][0]
就是列表。您可以循环查看它。我已经更新了我的答案,以提供一个示例。我可以用以下内容来解决:
for(int I=0;I Solved:
foreach(d[0][0]中的动态项){Console.WriteLine(项[0][“string1”]);Console.WriteLine(项[0][“date1”]);Console.WriteLine(项[0][“date2”]);…}
非常感谢大家!