首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将groovy字符串转换为jenkins管道中的映射

将groovy字符串转换为jenkins管道中的映射
EN

Stack Overflow用户
提问于 2018-04-11 23:37:36
回答 1查看 3.9K关注 0票数 0

我对Groovy和Jenkins管道相当陌生,我需要一个字符串转换成一个映射,以获得一些可行的数据,到目前为止我还没有找到解决方案。

代码语言:javascript
运行
复制
[fileListJs:file1.js,file2.js,file3.js, fileListHtml:file4.html,file5.html,file6.html, fileListCss:file6.css,file7.css,file8.html]

上面的字符串是某个jenkins选择参数在groovy变量中返回我的内容。现在,我需要这是一个正确的映射,以便能够解析其中的数据。

所以我尝试了这个方法:要映射的Groovy字符串

它执行以下代码:

代码语言:javascript
运行
复制
def fileMap =
    // Take the String value between
    // the [ and ] brackets.
    fileList[1..-2]
        // Split on , to get a List.
        .split(', ')
        // Each list item is transformed
        // to a Map entry with key/value.
        .collectEntries { entry ->
            def pair = entry.split(':')
            [(pair.first()): pair.last()]
        }

其中fileList是返回前一个给定字符串的变量。

但这不管用。

任何帮助都是非常感谢的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 01:09:28

我相信这就是你要找的。

代码语言:javascript
运行
复制
String fileList = "[fileListJs:file1.js,file2.js,file3.js, fileListHtml:file4.html,file5.html,file6.html, fileListCss:file6.css,file7.css,file8.css]"

fileList[1..-2]
       .split(/, /)
       *.tokenize(/:/)
       .collectEntries { [ it[0], it[1].tokenize(/,/) ] }

应该将结果映射作为

代码语言:javascript
运行
复制
[
  fileListJs:  ['file1.js', 'file2.js', 'file3.js'], 
  fileListHtml:['file4.html', 'file5.html', 'file6.html'], 
  fileListCss: ['file6.css', 'file7.css', 'file8.css']
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49785879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档