jenkins - Jenkinsfile 管道构造 JSON 对象并写入文件
问题描述
我想构造一个 JSON 对象并将内容写入文件。
最初我受此启发并尝试:
def data = [
a:"test: ${myVar}"
]
writeJSON(file: 'message1.json', json: data)
但这失败了:
无法为 WriteJSONStep 实例化 {file=message1.json, json={a=test}}(file: String, json: JSON{}, pretty?: 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)
推荐阅读
- javascript - 使用 api 触发 ng-click
- python - Discord.py 如何检查 MissingRequiredArgument 错误?
- git - 在 git 存储库中搜索 Flash 内容的最佳方式是什么?
- powershell - PowerShell ForEach 循环、通配符、限制具有多个子文件夹的集合内容的问题
- ajax - 使用 ajax 提交 symfony 5 表单
- python - 无法导入:“从 trello 导入 TrelloClient”py-trello 和 trello 包(replit)
- java - Springboot如何强制开发者在每个api之前写CustomAnnotation
- c# - 如何使用字符串作为主键编辑单个对象 CRUD
- assembly - .data 部分中汇编程序指令的混淆
- c++ - time() 函数在 Microsoft C++ 中运行缓慢