小编Pet*_*utz的帖子

如果任何数组元素满足条件,则 jq 选择属性

jq的帮助下,我想选择属性列表中至少有一个required=true的节点的所有地址。结果列表应该有唯一的项目。

这是我的 Json:

{
"nodes": [
    {
        "address":"127.0.0.1",
        "attributes": [
            {
                "id":"abc",
                "required":true
            },
            {
                "id":"def",
                "required":true
            },
            {
                "id":"ghi",
                "required":false
            }
        ]
    },
    {
        "address":"127.0.0.2",
        "attributes": [
            {
                "id":"abc",
                "required":false
            },
            {
                "id":"def",
                "required":false
            }
        ]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

我首先尝试:

jq '.nodes[] | select(.attributes[].required == true) | .address'
Run Code Online (Sandbox Code Playgroud)

这产生:

"127.0.0.1"
"127.0.0.1"
Run Code Online (Sandbox Code Playgroud)

因此,它获取在属性部分中找到的每个required=true字段的地址。如何使结果列表唯一?jq 中还有一个独特的关键字,但我不知道这对我有什么帮助。

select json any jq

6
推荐指数
1
解决办法
1396
查看次数

如何使用 jenkins 中的 groovy 脚本为配置文件提供程序插件添加配置文件

我在 Jenkins 中使用Job DSL。有一个种子作业会生成一些文件,这些文件应该在可以在不同节点上运行的其他作业之间共享。如果未生成文件,则可以将配置文件提供程序插件用于此任务。但是我需要文件是动态的,这样就不需要 Jenkins UI 交互。

是否可以使用 groovy 脚本向插件添加文件?

我能想到的唯一其他选择是记录 UI 交互并让脚本使用修改后的数据重放它。在更安全的 Jenkins 的情况下,这还需要正确获得身份验证和 CSRF 令牌。

groovy jenkins jenkins-job-dsl

4
推荐指数
1
解决办法
2231
查看次数

标签 统计

any ×1

groovy ×1

jenkins ×1

jenkins-job-dsl ×1

jq ×1

json ×1

select ×1