C# 使用数组反序列化Json
我需要像这样反序列化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"
[[[[{"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”]);…}
非常感谢大家!