【问题标题】:JSONPath expression for an array of multiple arrays多个数组的数组的 JSONPath 表达式
【发布时间】:2023-01-11 04:57:49
【问题描述】:

我有一个看起来像这样的 json 有效负载

{
   "data":{
      "methods":[
         [
            {
               "p_id":"01",
               "description":"Test01",
               "offline":true
            }
         ],
         [
            {
               "p_id":"02",
               "description":"Test02",
               "offline":false
            }
         ],
         [
            {
               "p_id":"03",
               "description":"Test03",
               "offline":true
            }
         ]
      ]
   }
}

如何编写 JSONPath 表达式来获取“离线”= false 的“p_id”?

【问题讨论】:

    标签: arrays json jsonpath


    【解决方案1】:

    如果对象总是在同一个地方,你可以使用

    $.data.methods.*.[?(@.offline === false)].p_id
    

    或者,如果您想查找 offline 为假且具有 p_id 属性的任何对象,您可以使用:

    $..[?(@.offline === false)].p_id
    

    注意:我在示例中使用了strict equality,因此它只会与布尔值 false 匹配。如果您不需要/不想要,您可以简单地使用 ! 来否定过滤器。例如。 $.data.methods.*.[?(!@.offline)].p_id$..[?(!@.offline)].p_id

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多