Sha*_*iZy 5 json json.net jsonpath
我尝试了近一个小时的不同方法,但我不明白;(
我的 JSON 对象是这样的:
"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"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的任务是使用 Newtonsoft.JSON 获取语言为“de”的所有值。我目前的做法是:
JsonObject.SelectTokens("typeOfHair.value.values[?(@.language == 'de')].value").ToList()
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?
亲切的问候
你们非常接近。您需要使用JsonPATH通配符运算符来解释外部value数组:typeOfHair.value[][*]
var values = JsonObject.SelectTokens("typeOfHair.value[*].values[?(@.language == 'de')].value")
// Convert from JValue to string
.Select(v => (string)v)
// Save in a list
.ToList();
Run Code Online (Sandbox Code Playgroud)
并且,结果是:
["TrockenesHaar","JedenHaartyp"]
Run Code Online (Sandbox Code Playgroud)
小提琴样本。