我想构造一个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"}
{"a": "test: v1.0.2"}
我的最终目标是我想动态构造一个JSON对象,使用一些动态数据设置一些属性,然后编写JSON文件。
是否有一些语法可用于将值分配为字符串,而不是某些字节。
解决此问题的一种方法似乎是更改添加到地图的代码以指定as String:
as String
def data = readJSON text: '{}' data.a = "test: ${myVar}" as String writeJSON(file: 'message1.json', json: data, pretty: 4)