Jenkinsfile管道构造JSON对象并写入文件

我想构造一个JSON对象并将内容写入文件。

原来我的灵感来自于尝试:

def data = [

a:"test: ${myVar}"

]

writeJSON(file: 'message1.json', json: data)

但这失败了:

无法为WriteJSONStep实例化{file = message1.json,json = {a = test}}(文件:字符串,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对象并写入文件 的全部内容, 来源链接: utcz.com/qa/411881.html

回到顶部