鉴于
{
"0": [
"508",
"New Form",
"New Form",
"SMART", {
"0": [
"1",
"true"
],
"1": [
"1",
"true",
"3",
"true"
],
"2": [
"1",
"true",
"3",
"true",
"5",
"true"
]
}
],
"1": [
"187",
"UserAccess",
"UserAccess",
"User Access to Smart", {
"0": [
"1",
"true"
]
}
]
}
我希望用
反序列化var _gridData = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string[]>>(griddata);
但它给了我:
读取字符串时出错。意外的令牌:StartObject。路径'0 [4]',第1行,第48位。
答案 0 :(得分:0)
问题在于您没有反序列化有效的Dictionary<string, string[]>
对象,您的对象实际上是Dictionary<string, object[]>
,因为例如索引data[0][3]
您有Dictionary<string, string[]>
1}}
答案 1 :(得分:0)
您的json不是字典,您的值不仅仅是字符串,而是对象。 你可以用这种方式反序列化:
var ret = JsonConvert.DeserializeObject<Dictionary<string, object[]>>(json);
它不会抛出异常,但是你必须决定如何处理结果:
答案 2 :(得分:0)
string[]
=&gt; object[]
,因为最后一个元素不是一个对象,不是一个字符串。
var _gridData = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object[]>>(griddata);