Jenkinsfile管道构造JSON对象并写入文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkinsfile管道构造JSON对象并写入文件相关的知识,希望对你有一定的参考价值。
我想构造一个JSON对象并将内容写入文件。
最初我受到了this的启发并尝试过:
def data = [
a:"test: ${myVar}"
]
writeJSON(file: 'message1.json', json: data)
但这失败了:
无法为WriteJSONStep实例化{file = message1.json,json = {a = test}}(文件:String,json:JSON {},漂亮?:int):java.lang.UnsupportedOperationException:必须使用实现指定$ class接口net.sf.json.JSON
接下来我尝试了:
def data = readJSON text: '{}'
data.a = "test: ${myVar}"
writeJSON(file: 'message1.json', json: data, pretty: 4)
现在构建通过,但文件的内容如下所示:
{
"a": {
"bytes": [
114,
101,
108,
101,
97,
115,
101
50
],
"strings": [
"test: ",
""
],
"valueCount": 1,
"values": ["v1.0.2"]
}
}
而我的意图是{"a": "test: v1.0.2"}
我的最终目标是我想动态构造一个JSON对象,用一些动态数据设置一些属性,然后编写JSON文件。
是否有一些语法可用于将值分配为字符串,而不是某些字节。
答案
似乎有一个解决方案是更改添加到地图的代码以指定as String
:
def data = readJSON text: '{}'
data.a = "test: ${myVar}" as String
writeJSON(file: 'message1.json', json: data, pretty: 4)
以上是关于Jenkinsfile管道构造JSON对象并写入文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jenkinsfile 构建 Jenkins 管道没有失败
Jenkins:是不是可以使用 Jenkinsfile 创建常春藤工作? (管道即代码)