【发布时间】:2018-11-22 00:02:25
【问题描述】:
我正在使用 .NET CORE 中的 JArray,我得到了这个特定键的随机结构,因此得到了不同的错误。我需要知道 JArray 是否有特定的子数组以及子 JArray 是否有特定的密钥对(NOT VALUE),即 value{ "Id":""} 以下错误之一;
Accessed JArray values with invalid key value: "id". Int32 array index expected.
at Newtonsoft.Json.Linq.JArray.get_Item(Object key) at
我期望的标准结构如下;
{[value, [
{
"id": "7ef82869-e235-69a2-f81e-3a9664e89bc4",
"value": ""
}
]]}
有时我得到 as,意思是在我尝试映射 Id 的地方抛出 null 错误。
{[value, [
{
"value": ""
}
]]}
有些时候我根本没有得到这个属性
我正在尝试以下检查以涵盖所有情况,但它并没有真正起作用。
代码
if (answerItems.value != null && answerItems.value.HasValues && answerItems.value["id"]!=null)
{
【问题讨论】:
-
您显示的“标准结构”不是有效的JSON,因此我们很难给您具体的答案。但看起来您正在尝试将
"id"作为数组本身的属性访问,而不是内部特定项目的属性。您可以使用 LINQ 查询数组中的对象,也可以使用 SelectToken 方法获取与您在字符串中定义的条件匹配的项目(例如answerItems.value.SelectToken("[?(@.id == '')]"))。
标签: c# json .net-core json.net