[英]Want to parse multiple key=value string to Map and then serialize it but map to string serialization fails
I am converting the key=value string Groovy Map. Then after some changes, returning back the serialize object. Example String --> dlpxDcTags = "OWNER=test,PROJECT=test2,COSTCENTER=1234,TEAM=devops"我正在转换键=值字符串 Groovy Map。然后在进行一些更改后,返回序列化 object。示例字符串 --> dlpxDcTags = "OWNER=test,PROJECT=test2,COSTCENTER=1234,TEAM=devops"
parseDcenterTags(dlpxDcTags){
Map tags = [:]
tags += dlpxDcTags.replaceAll('\\[|\\]', '').split(',').collectEntries { entry ->
def pair = entry.split('=')
[(pair.first().trim()): pair.last().trim()]
return tags
}
}
def createDcenterTags(dlpxDcTags=null) {
// Values passed from the environment of the user takes precedence
tags = parseDcenterTags(dlpxDcTags)
if (tags) {
if (!(tags.get('PROJECT'))) {
tags['PROJECT'] = env.JOB_NAME
}
if (!tags.get('OWNER')) {
// not supplied via dlpxDcTags
tags['OWNER'] = env.BUILD_USER_EMAIL
}
}
else {
tags['PROJECT'] = env.JOB_NAME
tags['OWNER'] = env.BUILD_USER_EMAIL
}
return serializeDcenterTags(tags)
}
def serializeDcenterTags(tags){
dlpxDcTags = {
tags.collect { /$tags.key="$tags.value"/ } join ","
}
return dlpxDcTags
}
Facing issue:面临的问题:
After lot of reading and trying different ways, the very simple thing which worked for me was doing the serialization in the same method instead of defining and calling it from another method.在大量阅读和尝试不同的方法之后,对我有用的非常简单的事情是用相同的方法进行序列化,而不是从另一个方法定义和调用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.