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

Jenkins多分支流水线JSON解析报错:hudson.remoting.ProxyException

Jenkins多分支流水线JSON解析错误排查与解决

错误原因

  • 重复解析导致格式冲突:readJSON插件会直接将JSON文件内容解析为Groovy的Map/List对象,后续调用JsonSlurperClassic.parseText(json)时,这个Groovy对象会被转换为Groovy风格的字符串(如[key:value]而非标准JSON的{"key":"value"}),不符合JSON语法规范,引发解析错误。
  • JSON文件语法不合法:提供的JSON文件中,最后一个键值对"ReferenceTicket": "RITM0923008",末尾多了一个逗号,这是JSON语法不允许的(最后一个元素后不能有 trailing comma)。

解决方法

1. 移除重复解析步骤

直接使用readJSON返回的解析结果,无需再用JsonSlurperClassic二次解析。修改后的代码如下:

writeJSON(file: "hostname.json", json: env.config)
def data = readJSON file: 'hostname.json'
echo "Original Payload: ${data.software_maintainance_package_destination}"

2. 修正JSON文件语法错误

移除最后一个键值对末尾的逗号,修正后的JSON内容:

{
  "software_maintainance_package_name": [
    {"AgentName":"TrendMicro", "process":"Install", "OS":"linux"}
  ],
  "software_maintainance_package_destination": [
    {"name":"InstanceIds", "detail":"186.12.45.23"}
  ],
  "siteName": "us-east-1",  
  "siteEnvironment": "OnPrem",
  "ReferenceTicket": "RITM0923008"
} 

补充说明

  • readJSON是Jenkins Pipeline提供的专门用于解析JSON的步骤,返回的是可直接操作的Groovy对象,无需额外使用JsonSlurper系列工具。
  • 若需要将Groovy对象转为JSON字符串,可使用writeJSON或JsonOutput.toJson()方法,而非直接将对象转为字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 14:36:11