gpt4 book ai didi

jq - 通过存在嵌套数组值来过滤jq中的对象

转载 作者:行者123 更新时间:2023-12-03 16:53:44 24 4
gpt4 key购买 nike

给定这样的文档:

[
{
"KVs" : [
{
"Key": "animal",
"Value": "lion"
},
{
"Key": "mascot",
"Value": "lion"
}
],
"name": "roger"
},
{
"KVs" : [
{
"Key": "animal",
"Value": "zebra"
},
{
"Key": "mascot",
"Value": "lion"
}
],
"name": "linda"
}
]

我想使用 jq仅选择包含KV对 animal == "lion"的顶部数组中的那些元素。

上面的JSON文档的输出应为:
{
"KVs" : [
{
"Key": "animal",
"Value": "lion"
},
{
"Key": "mascot",
"Value": "lion"
}
],
"name": "roger"
}

无法弄清楚如何使用 select()完成此操作。我知道如何使用它根据一个特定领域进行选择。例如通过键名: .[] | select(.KVs[].Key == "animal"),对吗?但是,如何告诉它与两个字段(键和值)上的同一KV对象匹配?

最佳答案

NM,借助jqplay和一些反复试验解决了该问题。
这是解决方案:.[] | select(.KVs[] | .Key == "animal" and .Value == "lion")(jqplay permalink)

关于jq - 通过存在嵌套数组值来过滤jq中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887535/

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