c# - 无法从 JSON 中检索值,出现“无法将 Newtonsoft.Json.Linq.JArray 转换为 Newtonsoft.Json.Linq.JToken。” 例外
问题描述
我有以下 JSON 示例
"object_properties":{
"has_related":[
{
"id":"id1",
"label":"label1"
},
{
"id":"id2",
"label":"label2"
},
{
"id":"id3",
"label":"label3"
}
],
"member_of":[
{
"id":"id4",
"label":"label4"
}
],
"is_top_concept_in_scheme":[
{
"id":"id5",
"label":"label5"
}
],
"has_broader":[
{
"id":"id6",
"label":"label6"
}
]
}
我正在尝试使用以下代码从“member_of”属性中获取 ID 和标签
var objectPropertiesParent = parent["object_properties"];
if (objectPropertiesParent != null)
{
MemberOfConceptObjectId = string.Empty;
MemberOfConceptObjectLabel = string.Empty;
var MemberOfConceptObject = objectPropertiesParent.Value<Array>("member_of");
if (MemberOfConceptObject != null)
{
MemberOfConceptObjectId = token.Value<JArray>("object_properties").Values<JArray>("member_of").FirstOrDefault().Values<string>("id").FirstOrDefault();
MemberOfConceptObjectLabel = token.Value<JArray>("object_properties").Values<JArray>("member_of").FirstOrDefault().Values<string>("label").FirstOrDefault();
}
}
但是,我得到“无法将 Newtonsoft.Json.Linq.JArray 转换为 Newtonsoft.Json.Linq.JToken。” 在哪里尝试设置 MemberOfConceptObject 变量(var MemberOfConceptObject = objectPropertiesParent.Value("member_of"); 行)
当我使用以下代码行时
MemberOfConceptObjectId = token.Values<JToken>("object_properties").Values<string>("member_of").FirstOrDefault();
我收到以下异常:“无法访问 Newtonsoft.Json.Linq.JProperty 上的子值。”
请让我知道我应该如何正确、干净地检索 member_of 属性的 ID 和 Label
非常感谢您的帮助
解决方案
这对我有用
var MemberOfConceptObject = parent["object_properties"]["member_of"];
if (MemberOfConceptObject != null)
{
MemberOfConceptObjectId = MemberOfConceptObject[0]["id"].ToString();
MemberOfConceptObjectLabel = MemberOfConceptObject[0]["label"].ToString();
}
推荐阅读
- go - 环境变量显然没有被传递给 systemd 服务调用
- jenkins - 通过 Jenkinsfile -> Docker-compose -> Docker 传递凭据
- javascript - 如何重置文本区域?
- typescript - 具有预先未知索引签名的接口/类型的 TS 自动完成
- python - Python3 Json Dictionary 输出价格打印最大值,小数点后 2 位
- python - 如何根据日期时间修剪数据框?
- php - 编码问题导致在同一位置创建了 2 个同名文件夹
- python - 使用 websocket 时出现 JSONDecodeError
- python - 无法使用请求帖子登录
- javascript - Discord JS - 交互创建和消息创建