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 是唯一的。