C#读取JSON数组键值对并存入Dictionary的实现求助
C# 读取JSON数组字段写入Dictionary实现方案
你已经完成普通键值对的读取逻辑,处理parameterName3数组字段只需要取出对应JArray类型节点,遍历后将每个元素的键值对存入字典即可。
具体实现代码
把你构造函数里注释位置的示例Add代码替换成以下逻辑即可:
// 取出JSON中parameterName3对应的数组节点 JArray param3Array = data["parameterName3"] as JArray; if (param3Array != null) { foreach (var item in param3Array.Cast<JObject>()) { string dictKey = item["parameterName3Key"].Value<string>(); string dictValue = item["parameterName3Value"].Value<string>(); parameterName3.Add(dictKey, dictValue); } }
注意事项
- 代码文件头部需要补充命名空间引用:
using Newtonsoft.Json.Linq;,否则JArray、JObject类型无法识别 - 如果JSON中存在重复的
parameterName3Key值,Add方法会抛出重复键异常。如果业务上允许后出现的值覆盖旧值,把Add语句改成parameterName3[dictKey] = dictValue;即可 - 不想写循环的话可以用LINQ一行完成转换,需要额外引入
using System.Linq;,写法如下:
if (data["parameterName3"] is JArray param3Array) { parameterName3 = param3Array.ToDictionary( item => item["parameterName3Key"].Value<string>(), item => item["parameterName3Value"].Value<string>() ); }
内容的提问来源于stack exchange,提问作者Ganeshan
相关产品推荐
相关产品推荐

