数组的XPath/JSONPath搜索

数组的XPath/JSONPath搜索,json,xpath,jmeter,jsonpath,Json,Xpath,Jmeter,Jsonpath,我们的RESTAPI返回一个嵌套对象数组。使用XPath或JSONPath,我想提取每个顶级数组对象的id元素,但不提取子对象的id元素 [ { "id":"1", "child":{ "id":"a" } }, { "id":"2", "child":{ "id":"b" } } ] 预期输出为1,2,而不是1,a,2,b 有人能帮助我们理解查询语法吗?我在中有

我们的RESTAPI返回一个嵌套对象数组。使用XPath或JSONPath,我想提取每个顶级数组对象的id元素,但不提取子对象的id元素

[
   {
      "id":"1",
      "child":{
         "id":"a"
      }
   },
   {
      "id":"2",
      "child":{
         "id":"b"
      }
   }
]
预期输出为1,2,而不是1,a,2,b


有人能帮助我们理解查询语法吗?我在

中有一个示例,请尝试在特定级别选择
id

search = JSON.search(data, '/*/*/id')
请参见此处的更新:

如果我们将XML转储到控制台(
console.log(JSON.toXML(数据));
),我们会看到:

注意:名称空间选择是不可能的,因此似乎不需要将
d:
名称空间前缀绑定到
违抗名称空间
uri


另外,请查看的“XPATH EVALUATOR”部分,并在XML和JSON视图之间切换,以了解JSON是如何在XML中表示的。这将有助于您了解数据结构以及在哪个级别可以找到
id

尝试在特定级别选择
id

search = JSON.search(data, '/*/*/id')
请参见此处的更新:

如果我们将XML转储到控制台(
console.log(JSON.toXML(数据));
),我们会看到:

注意:名称空间选择是不可能的,因此似乎不需要将
d:
名称空间前缀绑定到
违抗名称空间
uri


另外,请查看的“XPATH EVALUATOR”部分,并在XML和JSON视图之间切换,以了解JSON是如何在XML中表示的。这将帮助您了解数据结构的重要性,以及在什么级别可以找到
id

鉴于您的标签中有
jmeter
,这里有一个解决方案:

JSON路径表达式应该如下所示:
$[*].id

演示:

参考资料:


鉴于您的标签中有
jmeter
,这里有一个解决方案:

JSON路径表达式应该如下所示:
$[*].id

演示:

参考资料:


您提到了XPath:在XPath 3.1中,这是

parse-json($data)?*?id

您提到了XPath:在XPath3.1中,这是

parse-json($data)?*?id