arrays - 如何使用jq数组值返回true

标签 arrays json jq any

如果列表中的任何一个条件为真,我正在尝试使用以下 jq 命令返回一个真实的输出。

.Tags[] as $t| "aws:cloudformation:stack-name"| IN($t[])   

输入
 {
    "Tags": [{
            "Value": "INF-D-XX-SEC-OPNV-UW1",
            "Key": "Name"
        },
        {
            "Value": "INF-D-XX-CFS-StandardInfrastructure-UW1",
            "Key": "aws:cloudformation:stack-name"
        },
        {
            "Value": "sgOpenVPNAccess",
            "Key": "aws:cloudformation:logical-id"
        },
        {
            "Value": "UW1",
            "Key": "Location"
        },
        {
            "Value": "INF",
            "Key": "Application"
        },
        {
            "Value": "D",
            "Key": "Parent Environment"
        },
        {
            "Value": "arn:aws:cloudformation:us-west-1:111111:stack/INF-D-XX-CFS-StandardInfrastructure-UW1/1111-11-11e8-96fe-11",
            "Key": "aws:cloudformation:stack-id"
        },
        {
            "Value": "OPNV",
            "Key": "ResourceType"
        }
    ]
}

这给了我一个返回的 bool 值列表,如下所示,

- 输出 -
true
false
false
false
false
false
false

我想返回一个值 true如果其中之一
Key="aws:cloudformation:stack-name" 

被检测到并且没有给我一个值(value)列表。

最佳答案

由于 any/2,一个非常有效的解决方案(在时间和空间方面)很容易:

any(.Tags[]; .Key == "aws:cloudformation:stack-name")

这当然评估为 truefalse .如果你想要 true或者什么都不做,你可以加入 // empty以上。

关于arrays - 如何使用jq数组值返回true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252911/

相关文章:

python - 使用 Python 抓取 Javascript 创建的动态内容

json - 如何使用 bash 将 JSON 元素的值移动到子元素中

java - 将 Retrofit 与 Moshi 结合使用,在执行 POST、PUT 或 PATCH 时如何忽略特定对象属性

c - 如何用 Parson 构造 JSON 数组?

json - 如何使用 tsv 中的数组转换 JSON,并使用 jq 保留数组结构?

shell - 如何在shell管道中使用 `jq`?

c++ - C++ 中的模板实例化

arrays - 如何打印从 watch 连接即时消息返回的数组

python - 在 Cython 中返回一个结构数组

python - 将 "True"转换为真正的 JSON Python