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

Jenkins Groovy流水线中解析YAML变量,如何提取Item名称?

Jenkins Groovy流水线遍历YAML Map键名的解决方法

加载的YAML解析后,var1是一个Groovy Map结构,直接使用for (item in var1)遍历的是Map的Entry对象(包含键和对应的值),要提取item1这类名称,需要通过Entry的key属性获取。

方法一:使用for循环遍历Map Entry

configData = readYaml file: "var.yaml"
def var1 = configData['var1']

for (entry in var1) {
    // 获取item1、item2、item3这类名称
    def itemName = entry.key
    // 获取对应子项的列表
    def subItems = entry.value
    
    println("处理项:${itemName}")
    // 可进一步遍历子项
    subItems.each { subItem ->
        println("- 子项:名称=${subItem.name},类型=${subItem.type}")
    }
}

方法二:使用Groovy风格的each方法

Groovy对Map提供了更简洁的遍历语法,直接解构键和值:

configData = readYaml file: "var.yaml"
def var1 = configData['var1']

var1.each { itemName, subItems ->
    println("处理项:${itemName}")
    subItems.each { subItem ->
        println("- 子项:名称=${subItem.name},类型=${subItem.type}")
    }
}

关键说明

之前的循环打印出完整Map条目,是因为Groovy中遍历Map时默认迭代的是Map.Entry实例,每个实例包含key(键名)和value(对应值)两个属性,直接打印Entry会输出其字符串形式,需要显式提取key来获取item1这类名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:53:27