JSONpath 通过过滤另一个值来获取一个值
JSONpath to get a value by filter on another value
我有以下 JSON,我需要根据我的自动化脚本中给定的 ID 来验证状态。对于那个 JSON 路径需要
[
[
{
"id": 9905130204,
"category": {
"id": 0,
"name": "string"
},
"name": "doggie",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "string"
}
],
"status": "available"
},
{
"id": 9905130203,
"name": "Jeffs Doggie11/6/2019 2:44:53 PM",
"photoUrls": [
"string"
],
"tags": [],
"status": "available"
},
{
"id": 9905130217,
"name": "Goot Doggie",
"photoUrls": [
"https://media.karousell.com/media/photos/products/2017/09/14/doggi_door_stopper_1505372529_5cdd1eba0"
],
"tags": [],
"status": "available"
}
]
]
我想根据"id": 9905130217
提取"status": "available"
。不知道该怎么做,请帮忙。
您可以使用以下jsonpath表达式来查找id = n的状态:
$.[?(@.id == 'n')].status
因此,对于您的具体情况:
$.[?(@.id == '9905130217')].status
注意,这假设 id 是唯一的。
我有以下 JSON,我需要根据我的自动化脚本中给定的 ID 来验证状态。对于那个 JSON 路径需要
[
[
{
"id": 9905130204,
"category": {
"id": 0,
"name": "string"
},
"name": "doggie",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "string"
}
],
"status": "available"
},
{
"id": 9905130203,
"name": "Jeffs Doggie11/6/2019 2:44:53 PM",
"photoUrls": [
"string"
],
"tags": [],
"status": "available"
},
{
"id": 9905130217,
"name": "Goot Doggie",
"photoUrls": [
"https://media.karousell.com/media/photos/products/2017/09/14/doggi_door_stopper_1505372529_5cdd1eba0"
],
"tags": [],
"status": "available"
}
]
]
我想根据"id": 9905130217
提取"status": "available"
。不知道该怎么做,请帮忙。
您可以使用以下jsonpath表达式来查找id = n的状态:
$.[?(@.id == 'n')].status
因此,对于您的具体情况:
$.[?(@.id == '9905130217')].status
注意,这假设 id 是唯一的。