我正在使用jaywayjsonpath库从json下面获取正确的id,我的 phoneNumbers
类型为“iphone”。
一般来说,我想知道在子json对象中指定特定条件时如何从块的根元素中查找内容。
我尝试了下面的表达式,分别选择与iphone类型相关联的块和id列表,但无法找到根元素 id
属于json对象,我的电话类型是iphone。有人能指引我吗?我要去拿那个 id
作为这个问题的答案。
要获取ID列表,请执行以下操作: $[*].id
要获取与iphone类型对应的json对象,请执行以下操作: $[*].phoneNumbers[?(@.type=='iPhone')]
```
[
{
"id": "1",
"phoneNumbers": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
},
{
"id": "2",
"phoneNumbers": [
{
"type": "x",
"number": "0123-4567-8888"
},
{
"type": "y",
"number": "0123-4567-8910"
}
]
}
]
1条答案
按热度按时间uqdfh47h1#
我想你想让你的表情看起来更深刻。
首先,在电话号码列表中找到有iphone的对象。然后选择ID。
尝试
$[?(@.phoneNumbers[*].type=="iPhone")].id
.编辑
它看起来像javajsonpath库(我认为您正在使用它)支持许多函数。它没有列出
contains()
,但你可以试试anyof
操作员:$[?(@.phoneNumbers[*].type anyof ["iPhone"])].id
请注意,这肯定是特定于实现的,可能无法与任何其他库一起使用。