带过滤器的json路径通配符

时间:2017-04-10 18:24:46

标签: javascript json jsonpath

JSON路径语法是否提供了将过滤器应用于通配符(*)运算符选择的所有对象的方法?

例如,在以下数据中," byId"和"列表"包含仅以不同方式建模的相同数据。

{
  "list": [
    {"id": "a", "x": 1, "y": 2},
    {"id": "b", "x": 1, "y": 3},
    {"id": "c", "x": 0, "y": 4}
  ],
  "byId": {
      "a": {
        "x": 1, 
        "y": 2
      },
      "b": {
        "x": 1,
        "y": 3
      },
      "c": {
        "x": 0,
        "y": 4
       }
  }
}

我们可以获得" list"中的所有要点其中x大于0,查询

 $.list[?(@.x > 0)]

在" byId"部分,我们可以通过查询获得所有点的列表

$.byId.*

然而,是否有办法获得" byId" x使用jsonpath查询语法大于0的部分?

1 个答案:

答案 0 :(得分:0)

转出它非常简单,而不是大多数地方展示的例子。对于上述问题,答案就是

 $.byId[?(@.x>0)]

显然不需要外卡。