使用JSONPath仅获取顶级子级

时间:2016-10-28 20:25:21

标签: json jsonpath

我有一个JSON数组,其中包含4个对象,每个对象都有一个id字段。第四个对象包含两个子节点,每个子节点都有一个id字段。我想只得到4个顶级孩子的ids;我不想要第4个元素的孩子的ids。

这是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 个答案:

答案 0 :(得分:4)

我认为应该是

$[*].id

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