【问题标题】:JSONPath filter property by value in objectJSONPath 按对象中的值过滤属性
【发布时间】:2021-12-18 18:35:44
【问题描述】:

如何使用 JSONPath 过滤功能查询子对象(无数组)属性的特定条件?

考虑这个 JSON 示例:

{
  "queue": {
    "size": 13
  }
}

如果.queue.size 大于 0,我想获得匹配,如果等于 0,则不匹配。 我尝试使用以下查询,但它不起作用:$.queue[?(@.size>0)]。我不清楚为什么因为 $.queue[size] 在此示例中确实可以正确返回值 13,但如果我包含过滤语法,我永远不会得到匹配。

【问题讨论】:

    标签: json jsonpath


    【解决方案1】:

    看起来 JSONPath 表达式只适用于数组。请参阅 herehere。您的查询$.queue[?(@.size>0)] 适用于:

    {
      "queue": [{
        "size": 13
      },
      {
        "size": 10
      }]
    }
    

    【讨论】:

    • 感谢您的链接。看起来这对于当前的 JSONPath 确实是不可能的,但人们有兴趣添加它。
    猜你喜欢
    • 2019-05-04
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2019-05-10
    • 1970-01-01
    • 2022-08-18
    • 2017-09-22
    相关资源
    最近更新 更多