我有一个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?
答案 0 :(得分:4)
我认为应该是
$[*].id
请记住,您在数组中有这些,并且您希望数组中的每个元素。然后你想要他们的.id。