有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

内部数组的java Jayway JsonPath筛选器表达式

我有一个JSON文件,格式如下

{  
   "queryResponse":[  
      {  
         "id":"1",
         "name":"Parent1",
         "childList":[  
            {  
               "id":"11",
               "type":"A"
            },
            {  
               "id":"12",
               "type":"B"
            }
         ]
      },
      {  
         "id":"2",
         "name":"Parent2",
         "childList":[  
            {  
               "id":"21",
               "type":"B"
            },
            {  
               "id":"22",
               "type":"C"
            }
         ]
      }
   ]
}

使用jayway JsonPath,如何获取具有类型为“B”的子节点的所有父节点

这些筛选器表达式返回了一个空数组:

  • 索引中的通配符,如$。queryResponse[?(@.childList[*].type=='B')]
  • 过滤器字段中的深度扫描运算符,如$。queryResponse[?(@.childList..type=='B')]

唯一与我想要的最接近的过滤器表达式是带有ex:$数组索引的表达式。queryResponse[?(@.childList[0]。类型=='A')]


共 (1) 个答案

  1. # 1 楼答案

    使用containsin运算符

    $.queryResponse[?(@.childList[*].type contains 'B')]
    

    $.queryResponse[?('B' in @.childList[*].type )]