我有以下 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
但我不知道如何通过属性值过滤对象数组。
Use the select
过滤器jq
:
jq '.zk_kafka | .[] | select(.InstanceType == "t2.medium")'
Use the --arg
将参数传递给查询以避免注入的选项。
jq --arg instance "t2.medium" '.zk_kafka | .[] | select(.InstanceType == $instance)'
jq
has a manual https://stedolan.github.io/jq/manual/, a tutorial https://stedolan.github.io/jq/tutorial/ and a cookbook https://github.com/stedolan/jq/wiki/Cookbook.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)