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

如何用YamlBuilder将Map转换为指定格式的YAML文件?

解决Groovy YamlBuilder生成指定格式YAML的问题

你需要将包含逗号分隔字符串的Map转换为嵌套列表结构的YAML,直接传入原始Map无法得到目标格式,需要先预处理数据结构,再用YamlBuilder构建层级结构。

完整实现代码

def myMap = [1: "a, b, c ,d", 2: "y, d, x"]

// 预处理Map:拆分逗号分隔字符串并去除多余空格
def processedMap = myMap.collectEntries { key, value ->
    [key, value.split(/\s*,\s*/).toList()]
}

def yamlFile = new YamlBuilder()
yamlFile {
    // 构建顶层列表项
    "-Content" {
        // 遍历处理后的Map,生成每个键对应的嵌套列表
        processedMap.each { key, items ->
            "-$key" items
        }
    }
}

// 输出生成的YAML
println yamlFile.toString()

代码说明

  1. 数据预处理:用split(/\s*,\s*/)分割字符串,正则表达式会自动匹配逗号前后的任意空格,确保拆分后的元素没有多余空格;再通过collectEntries生成新的Map,每个值转为列表类型。
  2. YAML结构构建:
    • 先创建顶层的-Content列表项;
    • 遍历处理后的Map,为每个键生成-数字格式的列表项,并将对应的列表传入,YamlBuilder会自动处理成嵌套的列表结构。

生成的结果

-Content:
    -1:
         -a
         -b
         -c
         -d
    -2:
         -y
         -d
         -x

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:15:35