
[英]Searching a list of objects with identical keys for specific key, value pairs with JQ
[英]Get specific key value pairs with jq
在下面的示例json中,我可以使用jq -M ' map(select(.charge == null)) '
过滤费用为null的记录
[
{
"id": 1,
"name": "vehicleA",
"state": "available",
"charge": 100
},
{
"id": 2,
"name": "vehicleB",
"state": "available",
},
{
"id": 3,
"name": "vehicleB",
"state": "available",
"charge": 50
}
]
返回:
{
"id": 2,
"name": "vehicleB",
"state": "available",
}
一个人如何仅获取id
和与过滤后的记录的id
相关联的值,以便将该步骤添加到上述查询中将返回2
?
您的问题并不完全正确:
map(select(.charge == null))
的输出不是示例中的对象,而是单个对象的数组 无论如何,您都可以像这样从map
的结果中提取.id
:
jq -M 'map(select(.charge == null)) | .[].id' file.json
如果您想要不收费的商品ID数组,则可以使用以下过滤器:
.items | map(select(.charge == null) | .id)
如果希望枚举值而不是将其收集到数组中,则更好:
.items[] | select(.charge == null) | .id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.