首页 > 解决方案 > 我如何使用 jq 从 json 响应中获取特定数据?

问题描述

我正在使用 API 来获取数据,示例如下:

{
   "data":[
      {
         "id":1,
         "name":"test1"
      },
      {
         "id":2,
         "name":"test2"
      }
   ]
}

我会使用 jq 仅获取名称为“test1”但有时“test1”位于不同 ID 下的块,例如:

{
   "data":[
      {
         "id":1,
         "name":"test2"
      },
      {
         "id":2,
         "name":"test1"
      }
   ]
}

我试图使用 jq 得到的响应是

  {
     "id":*,
     "name":"test1"
  }

我已经用 jq 尝试了一些东西,但是我只是收到错误。我怎样才能做到这一点?

标签: jsonapicurlresponse

解决方案


利用select()

jq .data[] | select(.name=="test1")
{
  "id": 1,
  "name": "test1"
}

JQPlay


推荐阅读