我有一个复杂的JSON结构。我不想排除一部分并将清单分成两个桶。说一个为“包含”,另一个为“排除”。
下面提供了示例JSON。
{
"Item": {
"Items": [{
"Items": [{
"category": "fruit",
"Item": {
"Items": [{
"Text": "Apple"
},
{
"Text": "Orange"
},
{
"Text": "Grapes"
},
{
"Text": "Guava"
}],
"Types": ["Value",
"Value",
"Value",
"Value"]
},
"Type": "Or"
},
{
"category": "fruit",
"Item": {
"Text": "Pineapple"
},
"Type": "Value"
}],
"Types": ["Constraint",
"Constraint"]
},
{
"category": "fruit",
"Item": {
"Text": "Banana"
},
"Type": "Value"
}],
"Types": ["Not",
"Constraint"]
},
"Type": "And"}
在这里,我们有类别水果,其中Apple,Orange,Grapes和Guava为“ OR”,菠萝为“ AND”类型,而香蕉为“ Not”。一旦尝试
Item..Items[?(@.category='fruit')]..Text
它返回我
[ "Banana", "Apple", "Orange", "Grapes", "Guava", "Pineapple"]
但我希望List成为
{["Apple", "Orange", "Grapes", "Guava", "Pineapple" ]
},{["Banana"]}
JSON路径中是否有一种方法可以获取结构相似的内容
最佳答案
那可能不是您期望的答案,但是我认为JsonPath不可能实现。
引用jayway/JsonPath
在评估路径时,您需要了解路径何时确定的概念。如果路径包含以下内容,则该路径是不确定的:
..-深度扫描运算符
?() - 一种表达
[,(,)]-多个数组索引
不定路径始终返回一个列表(由当前JsonProvider表示)。
因此,您的结果将始终是列表。我认为,您已经拥有的是最接近的。
关于javascript - JSONPath排除为单独的JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29095426/