首页 > 解决方案 > 在詹金斯管道中使用时出现 jq 问题

问题描述

我有一个 JSON 对象 x 和一个变量 requiredValue

let requiredValue = 5;

let x = [
{"score":1},
{"score":2},
{"score":3}
}

这里首先使用 jq 我想提取所有分数值,然后检查对象中是否有任何分数值大于或等于 requiredValue。

这是我尝试过的

jq -r '.[].score | join(",") | contains([requiredValue])'

假设如果 requiredValue 为 5,则 jq 查询应返回 false,如果 requiredValue 为 2,则应返回 true。

标签: bashshelljq

解决方案


以下内容已使用 bash 进行了测试:

requiredValue=5

x='[
{"score":1},
{"score":2},
{"score":3}
]'

jq --argjson requiredValue $requiredValue '
  any(.[].score; . >= $requiredValue)' <<< "$x"

结果:

false

推荐阅读