使用JSONPath获取仅顶级子元素

6
我有一个包含4个对象的JSON数组,每个对象都有一个id字段。第四个对象包含两个子对象,它们各自也有一个id字段。我只想获取4个顶级子对象的id;我不想得到第4个元素的子对象的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子元素,但它却没有返回任何内容。

我查阅了许多页面,并尝试使用JSON测试器(例如https://jsonpath.curiousconcept.com/),但都不能找到一个JSONPath表达式以获取仅顶层的4个子元素id。

是否有JSONPath表达式可以获取只顶级子元素的ID?

1个回答

10
我认为应该是:

我认为应该是


$[*].id

请记住这些内容是存在于一个数组中的,您需要获取数组中的每个元素,然后获取它们的.id属性。


没问题。记得标记已接受的答案!这样其他遇到类似问题的人就能看到你的问题已经解决并获得了有用的信息。 - Nol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接