我正在尝试使用带有JSONPath的JSON.NET SelectToken来选择例如longname(eee
)的值,其中类型仅为ggg
。
JSON片段:
"results" : [
{
"components" : [
{
"longname" : "aaa",
"shortname" : "bbb",
"types" : [ "ccc", "ddd" ]
},
{
"longname" : "eee",
"shortname" : "fff",
"types" : [ "ggg" ]
}
]
}]
我无法正确获取JSONPath语法。我尝试了以下内容,我认为它接近正确的解决方案,但始终返回null
:
o.SelectToken("results[0].components[?(@.types=='[ggg]')].longname")
我引用了Querying JSON with SelectToken和# JSONPath - XPath for JSON并没有感到高兴。
答案 0 :(得分:1)
好的,所以我学到了一些关于JSONPath的知识并且有一个游戏(using this),我不确定这是否是最好的解决方案,但它确实有效:
results[0].components[?(@.types.length==1&&@.types[0]=="ggg")].longname
不幸的是,我似乎无法找到任何其他信息来表明有更简单的解决方案。