我有一个嵌套的json结构,其中有不同类型的结构。某些结构包含property
和propertytype
。我想选择propertyType==cloudProperty
的所有结构。我不知道json结构的格式,所以递归下降是必要的。
我尝试jsonpath.query(body, '$..*[?(propertyType=="cloudProperty")]
,据我所知,应该在root上进行递归下降,并查找propertyType
参数(如果存在)==“cloudProperty”的所有结构。这将返回一个空数组。
我理想的是将所有property
置于propertyType==cloudProperty
,但propertyType是属性的兄弟,而不是子节点。
根据我在调试器中看到的,jsonpath
执行迭代深度优先搜索,将每个节点添加到数组中,因为它被添加到调用堆栈中。但是jsonpath语法是否能够支持获取兄弟类型满足条件的所有结构?
的例子
0: Object... {
property: "foo",
propertyType: "bar",
value: {
property: "foo2",
propertyType: "cloudProperty"
}
},
1: Object... {
property: "foo3",
propertyType: "bsr",
}
问题是这些对象可能甚至不存在。 property
可能会降低1到n级。