选择基于兄弟属性的json结构

时间:2018-04-17 23:30:59

标签: jsonpath

我有一个嵌套的json结构,其中有不同类型的结构。某些结构包含propertypropertytype。我想选择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级。

0 个答案:

没有答案