c# - 使用 Json.net 循环 json 数组中的对象 [C#]

标签 c# json json.net

描述:

我有一个字符串str,如下所示:

[
  {
    "key1": "value1",
    "key2": "value2"
  },
  {
    "key1": "value3",
    "key2": "value4"
  }
]

我知道我可以将它反序列化为 json

JsonConvert.DeserializeObject<CustomType>(str).

现在我需要循环这些对象并获取值。我该怎么办?

最佳答案

JArray array = JsonConvert.DeserializeObject<JArray>(json);

foreach(JObject item in array)
{
    var a = item.Children<JProperty>().FirstOrDefault().Name;
    var b = item.Children<JProperty>().FirstOrDefault().Value;

}

这里,如果数组的每个元素中只有一个属性。如果您有多个属性,则需要循环所有子属性。

检查dotNetFiddle完整的代码示例。

编辑

如果每个对象有多个属性,则循环应如下所示。

        foreach(JObject item in array)
        {
            foreach(var prop in item.Children<JProperty>())
            {
                Console.WriteLine(prop.Name + ": " + prop.Value);
            }
            //Console.WriteLine(item.Children<JProperty>().FirstOrDefault().Name + ": " + item.Children<JProperty>().FirstOrDefault().Value);

        }

关于c# - 使用 Json.net 循环 json 数组中的对象 [C#],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40882566/

相关文章:

c# - 如何防止 AJAX 导航离开 WP7 中的 WebBrowser 控件中的页面

c# - WCF 和 Silverlight CrossDomain.xml

c# - 如果浏览器关闭并且没有任何东西可以接收,我的 ajax 请求的数据会发生什么

java - 如何正确索引 @RequestMapping 中的路径(JsonNodeTree 的路径)?

json.net - C# 代码中的 JsonArrayAttribute 用法 (Json.Net)

c# - 为什么 DataContractJsonSerializer 会跳过某些属性的反序列化?

c# - 如何实现自动调整大小的文本以适合文本框的可见部分?

javascript - 如何使用JavaScript过滤JSON

json - 将 JSON 字符串 UTF8 转换为 NSDictionary Swift

c# - Json.net 属性 : single value or array of values