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

Groovy在声明式流水线中将字符串转为Map列表并遍历取值的方法

声明式流水线字符串转List解决方法

你给出的字符串本身是合法的Groovy集合字面量,最快的转换方式直接调用Groovy内置的evaluate方法即可,无需自定义拆分、正则匹配逻辑。

代码示例

pipeline {
    agent any
    stages {
        stage('解析字符串并取值') {
            steps {
                script {
                    // 替换为你的原始字符串
                    def originStr = '[[key_A:value1, key_B:value2, key_C:value3],[key_A:value4, key_B:value5, key_C:value6],[key_A:value7, key_B:value8, key_C:value9]]'
                    // 一行完成转换为ArrayList<Map>
                    def mapList = evaluate("return ${originStr}")

                    // 遍历取值示例
                    mapList.each { item ->
                        // 直接通过key取对应值
                        println "key_A: ${item.key_A}, key_B: ${item.key_B}, key_C: ${item.key_C}"
                    }
                }
            }
        }
    }
}

注意事项

  • 如果Jenkins开启了脚本安全沙箱,首次运行需要在「管理Jenkins」-「进程内脚本批准」中同意evaluate方法的调用签名
  • 如果字符串内容不可信,担心恶意代码注入风险,可以先把原始字符串转为标准JSON格式(键值都套双引号,逗号分隔),再用JsonSlurper解析,示例如下:
    import groovy.json.JsonSlurper
    // 先把原始字符串转为合法JSON
    def jsonStr = originStr.replaceAll(/([a-zA-Z0-9_]+):([a-zA-Z0-9_]+)/, '"$1":"$2"')
    def mapList = new JsonSlurper().parseText(jsonStr)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:54:01