You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Groovy查询JSON文件时返回Null值问题求助

Jenkins Groovy脚本获取JSON数组所有值返回Null的解决方法

问题场景

在Jenkins Groovy脚本中执行以下代码时,返回Null响应:

def Services= sh(script: "curl -s --header \"PRIVATE-TOKEN: ${gittoken}\" ${url}| jq -r .${Servicename}[]", returnStdout: true)

对应的目标JSON结构如下:

{
  "FrameWork1": [
    "sample/sample1",
    "sample/sample2"
  ]
}

需要获取FrameWork1数组的所有值,但上述代码返回Null;而指定数组索引(如[1])时,能正常获取对应位置的元素:

def Services= sh(script: "curl -s --header \"PRIVATE-TOKEN: ${gittoken}\" ${url}| jq -r .${Servicename}[1]", returnStdout: true)

问题原因

Groovy的字符串插值会解析表达式中的[],导致最终传递给jq的命令语法错误,无法正确识别数组遍历的指令。

解决方法

给jq的表达式外层加上单引号,避免Groovy解析方括号部分:

def Services= sh(script: "curl -s --header \"PRIVATE-TOKEN: ${gittoken}\" ${url}| jq -r '.${Servicename}[]'", returnStdout: true)

这样jq就能正确执行.FrameWork1[]的遍历逻辑,输出数组中的所有元素,每个元素单独占一行。

内容的提问来源于stack exchange,提问作者raghu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:00:57