Jenkins 用Groovy中的jsonbuilder替换json中的版本
如何使用groovy脚本将json文件“deploy.json”中的版本从“1.0.2”替换为“2.6.5”,下面提供了文件内容Jenkins 用Groovy中的jsonbuilder替换json中的版本,jenkins,groovy,jenkins-pipeline,jenkins-groovy,Jenkins,Groovy,Jenkins Pipeline,Jenkins Groovy,如何使用groovy脚本将json文件“deploy.json”中的版本从“1.0.2”替换为“2.6.5”,下面提供了文件内容 { "versions": [ { "version": "1.0.2", "conf": "replian" }, { "version": "1.0.2", "conf": "hp" },
{
"versions": [
{
"version": "1.0.2",
"conf": "replian"
},
{
"version": "1.0.2",
"conf": "hp"
},
{
"version": "1.0.2",
"conf": "shutoff"
},
{
"version": "1.0.2",
"conf": "spark"
}
]
}
我尝试了下面的方法,但出现了一个错误
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
def content = """
{
"versions": [
{
"version": "1.0.2",
"conf": "replian"
},
{
"version": "1.0.2",
"conf": "hp"
},
{
"version": "1.0.2",
"conf": "shutoff"
},
{
"version": "1.0.2",
"conf": "spark"
}
]
}"""
def slurped = new JsonSlurper().parseText(content)
def builder = new JsonBuilder(slurped)
builder.content.versions.find{it.version}.version = "2.6.5"
println(builder.toPrettyString())
问题是:
当我使用上面的脚本时,只有第一个conf“replian”版本被替换
{
"version": "2.6.5",
"conf": "replian"
},
{
"version": "1.0.2",
"conf": "hp"
},
{
"version": "1.0.2",
"conf": "shutoff"
},
{
"version": "1.0.2",
"conf": "spark"
}
使用方法
输出
{
"versions": [
{
"version": "2.6.5",
"conf": "replian"
},
{
"version": "2.6.5",
"conf": "hp"
},
{
"version": "2.6.5",
"conf": "shutoff"
},
{
"version": "2.6.5",
"conf": "spark"
}
]
}
{
"versions": [
{
"version": "2.6.5",
"conf": "replian"
},
{
"version": "2.6.5",
"conf": "hp"
},
{
"version": "2.6.5",
"conf": "shutoff"
},
{
"version": "2.6.5",
"conf": "spark"
}
]
}