我有這樣一個JObject:如何根據JSONPath中的多個候選名稱選擇JToken?
{
name1: {
value [
...
]
}
}
這也可能是在形式:
{
name2: {
value [
...
]
}
}
所以我試圖用一個單一的JSONPath選擇出來。有沒有辦法做這樣的事情?
$['name1' or 'name2']['value']
我有這樣一個JObject:如何根據JSONPath中的多個候選名稱選擇JToken?
{
name1: {
value [
...
]
}
}
這也可能是在形式:
{
name2: {
value [
...
]
}
}
所以我試圖用一個單一的JSONPath選擇出來。有沒有辦法做這樣的事情?
$['name1' or 'name2']['value']
基礎上的答案,這兩個做題:OR operator in JSONPath?和JsonPath AND Operator on Array,似乎AND
和OR
運營商都沒有完全JSONPath尚不支持。
但是,我們可以使用聯合運算符來估計我們需要的值。基於該JSONPath documentation,
Union operator in XPath results in a combination of node sets.
JSONPath allows alternate names or array indices as a set.
這似乎是我們所需要的,但仍然,JsonPath AND Operator on Array提到的聯合運營商可能有一些錯誤或不同的實現之間的細微差別。
相似的,我在這裏執行了我自己的驗證:http://jsonpath.herokuapp.com/。
我試過['name1','name2']['value']
和除Nebhale的所有實現正確解析我所需要的。所以我想我的原始問題有一個解決方案,但它有點特定於實現,所以請首先完全測試您自己的代碼,以確保此JSONPath和聯合運算符可以在您的代碼庫中工作。