我有以下 json:
{
"details":{
"car": "bmw",
"addresses":{
"ext-118-21-8-0-29":[
{
"version":4,
"addr":"89 Psr"
},
{
"version":6,
"addr":"56 apT"
}
]
}
}
}
The key ext-118-21-8-0-29
是动态的,下次它会改变,我不知道确切的值,这就是为什么我需要使用通配符。我需要获取密钥的值addr
版本在哪里4
.
我期望输出89 Psr
我使用该函数尝试了以下操作startswith()
.
jq '.detail.addresses | select(startswith("ext"))'
但它以错误结束。
jq:错误(位于:0):startswith()需要字符串输入
如果您不关心正在搜索的对象中的键,则可以使用以下命令来搜索对象的值[]
然后您可以过滤到您想要的结果。
.details.addresses[][] | select(.version == 4).addr
另一方面,如果您想选择版本 4 的密钥,您可以使用to_entries
去做这个:
.details.addresses | to_entries[] | select(any(.value[]; .version == 4)).key
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)