带有JSONPath的JSON.NET SelectToken
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有JSONPath的JSON.NET SelectToken相关的知识,希望对你有一定的参考价值。
我正在尝试使用带有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。
答案
好的,所以我学到了一些关于JSONPath的知识并且有一个游戏(using this),我不确定这是否是最好的解决方案,但它肯定有效:
results[0].components[?(@.types.length==1&&@.types[0]=="ggg")].longname
不幸的是,我似乎无法找到任何其他信息来表明有一个更简单的解决方案。
以上是关于带有JSONPath的JSON.NET SelectToken的主要内容,如果未能解决你的问题,请参考以下文章
带有 JsonTextReader 的 JsonPath:一次标记
如何使用 dojox.jsonPath.query 过滤/查询日期
尝试使用 JSON.NET 反序列化带有 [] 字符的 JSON
带有 Json.Net 格式化程序的 ChannelFactory