gpt4 book ai didi

json - 如何使用 jq 过滤 JSON 对象数组?

转载 作者:行者123 更新时间:2023-12-04 01:36:07 24 4
gpt4 key购买 nike

我有以下 JSON 输入:

{
"zk_kafka": [
{
"InstanceType": "t2.medium",
"zkMemory": "16",
"kafkaMemory": "8"
},
{
"InstanceType": "t2.small",
"zkMemory": "8",
"kafkaMemory": "4"
}
],
"es_hdfs": [
{
"InstanceType": "t2.medium",
"esMemory": "16",
"hdfsMemory": "8"
},
{
"InstanceType": "t2.small",
"esMemory": "8",
"hdfsMemory": "4"
}
]
}

首先,我想通过属性名称选择一个数组。然后我想通过属性 InstanceType 的值选择数组的一个对象.

属性示例 zk_kafka和值 t2.medium :
{
"InstanceType": "t2.medium",
"zkMemory": "16",
"kafkaMemory": "8"
}

我知道如何选择数组:
jq .zk_kafka

但我不知道如何通过属性值过滤对象数组。

最佳答案

使用 select jq 的过滤器:

jq '.zk_kafka | .[] | select(.InstanceType == "t2.medium")'
使用 --arg选项将参数传递给查询以避免注入(inject)。
jq --arg instance "t2.medium" '.zk_kafka | .[] | select(.InstanceType == $instance)'
jq有一个 manual , 一个 tutorialcookbook .

关于json - 如何使用 jq 过滤 JSON 对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com