使用 JSONPath 仅获取顶级 children

Using JSONPath to get only top level children

我有一个 JSON 数组,其中包含 4 个 object,每个数组都有一个 id 字段。第四个 object 包含两个 children,每个 children 还有一个 id 字段。我只想获取4个顶层的ids children;我不想要第 4 个元素的 children 的 ID。

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

[
  {
    "id": 709709537
  },
  {
    "id": 1104067257
  },
  {
    "id": 2961327618
  },
  {
    "id": 9066007668,
    "photo": {
      "id": 461295287,
      "thumbnails": [
        {
          "id": 461295307
        }
      ]
    }
  }
]

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

[  
   709709537,
   1104067257,
   2961327618,
   9066007668,
   461295287,
   461295307
]

我原以为 $.id 会给我 4 个顶级 id children,但这对我毫无帮助。

我研究了很多页面并使用 JSON 测试人员(例如 https://jsonpath.curiousconcept.com/)尝试了几个实验,但找不到 JSON 路径表达式来获得前 4 [=31] =] id 元素。

是否有一个 JSON路径表达式可以让我得到顶级 children ids?

我觉得应该是

$[*].id

请记住,您将这些元素放在一个数组中,并且您需要数组中的每个元素。然后你想要他们的.id。