如何解决使用jq和filter进行JSON解析
我正在学习jq。我的内容如下:
{
"amphorae_links":[
],"amphorae":[
{
"status":"BOOTING","loadbalancer_id":null,"created_at":"2020-06-23T08:56:56","vrrp_id":null,"id":"6d66935e-6d39-40c9-bb0d-dd6a734dc77b"
},{
"status":"ALLOCATED","loadbalancer_id":"79970c9a-b0ba-4cde-a7e6-16b61641a7b8","created_at":"2020-06-25T06:41:56","vrrp_id":1,"id":"872c08ee-9b21-4b26-9550-c2ffb4a1ad59"
}
]
}
我想要一个类似的输出
"ALLOCATED=872c08ee-9b21-4b26-9550-c2ffb4a1ad59,79970c9a-b0ba-4cde-a7e6-16b61641a7b8"
我尝试在下面使用,但是我不知道如何删除状态为“ BOOTING”的行。
.amphorae[] | "\(.status)=\(.id),\(.loadbalancer_id)"
感谢任何人的帮助。
解决方法
您有两种选择:
- 您可以指定双耳瓶数组的第二个索引,也就是说,如果您确定“ ALLOCATED”部分始终是双耳瓶数组的第二个索引
.amphorae[1] | "\(.status)=\(.id),\(.loadbalancer_id)"
- 这有点复杂,但是将始终确保您仅获得状态键为“ ALLOCATED”的安培杯数组元素。
.amphorae | map(select(.status == "ALLOCATED"))[] | "\(.status)=\(.id),\(.loadbalancer_id)"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。