我有一个像这样的JObject:
{
name1: {
value [
...
]
}
}
它也可能是以下形式:
{
name2: {
value [
...
]
}
}
所以我尝试使用单个JSONPath来选择JArray value
。有没有办法做这样的事情?
$['name1' or 'name2']['value']
答案 0 :(得分:0)
根据对这两个SO问题的回答:OR operator in JSONPath?和JsonPath AND Operator on Array,JSONPath中似乎尚未完全支持AND
和OR
个运算符。
但是,我们可以使用union运算符来估算我们需要的东西。基于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提到union运算符可能在不同的实现之间存在一些错误或细微差别。
同样,我在这里进行了自己的验证:http://jsonpath.herokuapp.com/。
我已经尝试了['name1','name2']['value']
,除了Nebhale的所有实现都能正确解析我需要的东西。所以我想我的原始问题有一个解决方案,但它有点特定于实现,所以请首先完全测试你自己的代码,以确保这个JSONPath和union运算符能在你的代码库中运行。