从JSON.net中的JArray中获取值
本文关键字:获取 JArray 中的 JSON net | 更新日期: 2023-09-27 18:05:13
我有麻烦从我的JArray获取数据,特别是我试图访问ID值。下面是一个JSON示例
{
"page": 1,
"totalPages": 5,
"pageSize": 2,
"sortField": "label",
"sortOrder": "asc",
"content": [
{
"organizationId": "Org123",
"id": "333",
"label": "comp1"
},
{
"organizationId": "Org123",
"id": "444",
"label": "comp2"
}
]
}
下面是c#
JArray jArray = new JArray(jsonString);
foreach (JValue item in jArray)
{
Console.WriteLine(item["id"]);
}
我知道我需要检查JValue以确保它是ID类型,但我对对象类型分配感到困惑,一旦它在JArray中被分解。
首先,您正在处理顶层的对象。解析对象之后,您需要查看content
数组:
var obj = JObject.Parse(json);
foreach (JObject element in obj["content"])
{
Console.WriteLine(element["id"]);
}
这里有一个例子: https://dotnetfiddle.net/DhVZFf
而且(这可能只是一个打字错误),您的JSON格式不正确。具体来说,content
数组中逗号分隔元素的位置错误:
{
"organizationId": "Org123",
"id": "333",
"label": "comp1", // <---
}
{
"organizationId": "Org123",
"id": "444",
"label": "comp2",
}
这些逗号应该在数组元素之间:
{
"organizationId": "Org123",
"id": "333",
"label": "comp1"
}, // <---
{
"organizationId": "Org123",
"id": "444",
"label": "comp2"
}
下面是其他有用的例子https://www.newtonsoft.com/json/help/html/queryinglinqtojson.htm