使用JSONPath仅获取顶级子级

use*_*051 4 json jsonpath

我有一个JSON数组,其中包含4个对象,每个对象都有一个id字段。第四个对象包含两个孩子,每个孩子也都有一个id字段。我只想获取4个顶级孩子的ID;我不希望第4个元素的子代的ID。

这是JSON字符串的简化版本:

[
  {
    "id": 709709537
  },
  {
    "id": 1104067257
  },
  {
    "id": 2961327618
  },
  {
    "id": 9066007668,
    "photo": {
      "id": 461295287,
      "thumbnails": [
        {
          "id": 461295307
        }
      ]
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

使用JSONPath,$..id将获得全部6个id元素,而无法确定它们来自哪个级别,例如

[  
   709709537,
   1104067257,
   2961327618,
   9066007668,
   461295287,
   461295307
]
Run Code Online (Sandbox Code Playgroud)

我原本$.id希望给我4个顶级id孩子,但这一无所获。

我研究了许多页面,并尝试使用JSON测试器(例如https://jsonpath.curiousconcept.com/)进行了几次实验,但找不到JSONPath表达式来获取仅前4个子id元素。

是否有一个JSONPath表达式可以让我得到顶级子ID?

小智 5

我认为应该

$[*].id
Run Code Online (Sandbox Code Playgroud)

请记住,您在数组中有这些元素,并且希望数组中的每个元素。然后,您之后需要它们的.id。