如何将对象的json数组反序列化为字典[重复]

Posted

技术标签:

【中文标题】如何将对象的json数组反序列化为字典[重复]【英文标题】:How to deserialize the json array of objects to dictionary [duplicate] 【发布时间】:2012-01-21 23:42:23 【问题描述】:

我有一个 Json 字符串

"['SymptID': '" + MidID + "', 'ALvl' : '" +JawLvl + "',
'SymptID': '" + BckID + "', 'ALvl' : '" + PanLvl + "',
'SymptID': '" + SysID + "', 'ALvl' : '" + wPLvl + "']"

 

Dictionary<string, string> Symptoms =
    (Dictionary<string, string>)Newtonsoft.Json.JsonConvert.DeserializeObject(
        data, typeof(Dictionary<string, string>));

foreach (KeyValuePair<string, string> keyValuePair in Symptoms)
 //do some action 

如何使用这个多数组 json 数据获取键和值...还有其他方法吗?

注意:问题不是重复的 到How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?, 因为json结构不同。

这里我们有一个包含 2 个属性 SymptID 和 ALvl 的对象数组, 需要使用 key SymptID 转换为字典和 value ALvl.  参考问题有一个对象,该对象具有多个属性,这些属性具有需要转换为的对应值 以属性名称作为键,属性值作为值的字典 字典。

【问题讨论】:

您也可以使用 javascriptSerializer 类 (System.Web.Extensions)。 var result = serializer.Deserialize>(yourJsonString); 【参考方案1】:

您还可以使用 json.net 或 fastjson 开源库以比使用内置 .net 序列化程序更快、更有效的方式执行此任务。

json.net - http://json.codeplex.com/

fastJson - http://www.codeproject.com/Articles/159450/fastJSON

【讨论】:

以上是关于如何将对象的json数组反序列化为字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章

built_value 如何将 json 数组反序列化为对象数组?

怎么将一个数组序列化与反序列化????越详细越好!!!可以加分

如何将 JSON 返回反序列化为从 RestSharp 调用到 API 的对象数组?

Json.NET:反序列化嵌套字典

将json反序列化为键值对列表[重复]

使用 SwiftyJSON 将 JSON 数组反序列化为 Swift 对象