带有Newtonsoft.JSON的JsonPath [英] JsonPath with Newtonsoft.JSON
本文介绍了带有Newtonsoft.JSON的JsonPath的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试了将近一个小时的不同方法,但是我不明白;(
I tried for nearly an hour different approaches, but I don't get it ;(
我的JSON对象是这样的:
my JSON object is this:
"typeOfHair": {
"value": [
{
"code": "Dry Hair",
"values": [
{
"value": "DryHair",
"language": "en"
},
{
"value": "TrockenesHaar",
"language": "de"
}
]
},
{
"code": "Any Type of Hair",
"values": [
{
"value": "AnyTypeOfHair",
"language": "en"
},
{
"value": "JedenHaartyp",
"language": "de"
}
]
}
]
}
我的任务是使用Newtonsoft.JSON获取语言为"de"的所有值. 我目前的方法是:
And my task is to get with Newtonsoft.JSON all values where the language is "de". My current approach is:
JsonObject.SelectTokens("typeOfHair.value.values[?(@.language == 'de')].value").ToList()
有人可以帮我吗?
亲切的问候
推荐答案
您非常亲密.您需要使用 JsonPATH 通配符[*]
:
You're very close. You need to account for the outer value
array typeOfHair.value[]
by using the JsonPATH wildcard operator [*]
:
var values = JsonObject.SelectTokens("typeOfHair.value[*].values[?(@.language == 'de')].value")
// Convert from JValue to string
.Select(v => (string)v)
// Save in a list
.ToList();
然后,结果是:
["TrockenesHaar","JedenHaartyp"]
示例小提琴.
这篇关于带有Newtonsoft.JSON的JsonPath的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文