描述:
我有一个字符串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/