【问题标题】:How to modify JSON property on jenkins workspace using groovy?如何使用 groovy 修改 jenkins 工作区上的 JSON 属性?
【发布时间】:2019-08-29 19:16:11
【问题描述】:

问题:我正在读取 JSON 文件中名为“版本”的属性并成功打印。现在我正在尝试修改它,并修改文件,即使用 groovy 增加版本号。

我的文件很简单:

{
    "version":"1.0.0"
}

到目前为止,我尝试使用 writeJSON 函数来操作版本号。

def pack = scope.readJSON file: "path/to/json/file.json"
String currVersion = "${pack.version}"
// The above code works...

// The code below does not
pack['version'] = "1.2.0"
scope.writeJSON file: "path/to/json/file.json", json: pack

预期 jenkins 构建通过并且 json 文件得到修改,但我收到以下错误消息:

groovy.lang.MissingPropertyException:没有这样的属性:类的版本

【问题讨论】:

    标签: json jenkins jenkins-plugins jenkins-groovy


    【解决方案1】:

    你需要做的就是设置一个参数returnPojo: true。它将在返回之前将输出转换为 POJO 类型(LinkedHashMap 或 ArrayList)。

    默认情况下,该参数设置为 false,并返回一个 JSON 对象(来自 json-lib 的 JSONObject 或 JSONArray)。

    def pack = scope.readJSON file: "path/to/json/file.json", returnPojo: true
    

    【讨论】:

      猜你喜欢
      • 2016-10-17
      • 2014-06-27
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2018-07-17
      • 2019-02-11
      相关资源
      最近更新 更多