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

如何用Groovy遍历DynamoDB嵌套JSON并填充Jenkins参数?

解决Groovy遍历DynamoDB嵌套JSON的编译错误与取值问题

问题分析

  1. 编译错误原因:你的JSON字符串存在语法错误,报错行显示"test: {,正确格式应为"test": {——键名必须用双引号完整包裹,键与值之间的冒号不能遗漏引号。
  2. 遍历逻辑错误:DynamoDB返回的JSON外层是数组,解析后得到List类型,原代码直接用key, value遍历数组会导致逻辑错误,无法正确获取嵌套的S值。

修正后的Groovy代码

import groovy.json.JsonSlurper

def json = '''
[
  {
    "test": {
        "S": "0"
    },
    "dev": {
        "S": "1"
    },
    "cert": {
        "S": "2"
    },
    "prod": {
        "S": "-3"
    }
  }
]
'''

def json_out = new JsonSlurper().parseText(json)

// 遍历数组中的环境配置对象(此处仅一个)
json_out.each { envConfig ->
    // 遍历每个环境的键值对
    envConfig.each { envName, envDetail ->
        // 提取嵌套结构中"S"对应的取值
        def envValue = envDetail.S
        println "环境名称: ${envName}, 对应值: ${envValue}"
        
        // 填充Jenkins参数的示例代码(需确保脚本有权限操作构建参数)
        // build.setParameter(envName, envValue)
    }
}

关键说明

  • JSON格式校验:确保所有键名、字符串值都用双引号包裹,结构符合标准JSON语法,这是解析成功的前提。
  • 层级遍历:先处理外层数组,取出里面的环境配置对象;再遍历对象的每个键值对,通过envDetail.S直接获取DynamoDB返回的字符串类型值。
  • Jenkins参数填充:若要将值写入Jenkins参数,可使用build.setParameter(参数名, 参数值)方法,需注意脚本需具备修改构建参数的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:38:34