【发布时间】:2016-10-10 15:43:23
【问题描述】:
[
{
"CRMNextFields": [
{
"FieldName": "ActiveTime",
"CastRequired": "False",
"DefaultValue": "",
"Description": "",
"FieldID": "10001567",
"KeyID": "6",
"Label": "SN_ActiveTime",
"IsMandatory": "False",
"MaxValue": "",
"MinValue": "",
"Type": "1",
"IsLookup": "False",
"LinkedFields": "",
"FieldKey": "0",
"TextFieldName": "",
"ErrorMessage": "",
"LayoutFieldId": "",
"LayoutType": "0",
"IsDNC": "",
"DNCField": "",
"ReturnType": "-1"
},
{
"FieldName": "CreatedByTypeName",
"CastRequired": "False",
"DefaultValue": "",
"Description": "",
"FieldID": "10001601",
"KeyID": "6",
"Label": "SN_CreatedByType",
"IsMandatory": "False",
"MaxValue": "",
"MinValue": "",
"Type": "2",
"IsLookup": "True",
"LinkedFields": "",
"FieldKey": "257",
"TextFieldName": "",
"ErrorMessage": "",
"LayoutFieldId": "",
"LayoutType": "-1",
"IsDNC": "",
"DNCField": "",
"ReturnType": "-1"
}
]
}
]
我想将此 JSON 转换为字典。 但我在转换时遇到了一些异常。
Dictionary<object, object> values = JsonConvert.DeserializeObject<Dictionary<object, object>>(jsonResp);
错误:
无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“System.Collections.Generic.Dictionary`2[System.Object,System.Object]”,因为该类型需要 JSON 对象(例如{"name":"value"}) 正确反序列化。
要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化的列表。也可以将 JsonArrayAttribute 添加到类型中以强制它从 JSON 数组中反序列化。
路径'',第 1 行,位置 1。
【问题讨论】:
-
尝试
Dictionary<string, object>进行反序列化。但是,您似乎拥有比字典更大的对象,即包含具有字典样式格式的对象的数组。您可以创建一个可以使用里面的字典反序列化它的类
标签: c# json dictionary