我有以下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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
首先,我想通过属性名称选择一个数组.然后我想通过属性的值选择数组的对象InstanceType.
属性zk_kafka和值的示例t2.medium:
{
"InstanceType": "t2.medium",
"zkMemory": "16",
"kafkaMemory": "8"
}
Run Code Online (Sandbox Code Playgroud)
我知道如何选择数组:
jq .zk_kafka
Run Code Online (Sandbox Code Playgroud)
但我不知道如何通过属性值过滤对象数组.
cev*_*ing 22
使用以下select过滤器jq:
jq '.zk_kafka | .[] | select(.InstanceType == "t2.medium")'
Run Code Online (Sandbox Code Playgroud)
使用该--arg选项将参数传递给查询.
jq --arg instance "t2.medium" '.zk_kafka | .[] | select(.InstanceType == $instance)'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8861 次 |
| 最近记录: |