繁体   English   中英

如何在JQ中的Json中根据元素的值过滤对象数组

[英]How to filter an array of objects based on value of a element in the Json in JQ

我正在尝试使用JQ从Json获得价值。

我必须从inputJson(activeItem)获取一个ID,并使用该ID从下面的项目列表中获取元素的名称。

可以在单个查询中完成吗?

{
"amazon": {
"activeitem" : 2, 
"items": [
  {
    "id" : 1,
    "name": "harry potter",
    "state": "sold"
  },
  {
    "id" : 2,
    "name": "adidas shoes",
    "state": "in inventory"
  },
  {
    "id" : 3,
    "name": "watch",
    "state": "returned"
  }
]
}
}

现在,我首先获取值并进行过滤,而我想在单个查询中进行。

根据您的数据,过滤器:

.amazon
| .activeitem as $id
| .items[]
| select(.id == $id)
| .name

生产:

"adidas shoes"

(如果需要原始字符串,请使用-r命令行选项。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM