首页 > 解决方案 > 为 Jenkins 替换 Groovy 中的所有 JSON

问题描述

希望你和你的家人都好,我需要问一些菜鸟。我现在正在与 Groovy 一起为詹金斯的一些项目工作。我的 json 文件有很多名称:“Ingress_1”、“Ingress_2”等等,所以我会尝试使用著名的 replaceAll 但没有任何反应:

这是代码:

import groovy.json.JsonSlurper
if(the_suite.equals("Asset_important"))
{
def process =["cat",".blabla/jsonfile.json"].execute()
def jsonSlurper = new JsonSlurper()
List<String> artifacts = new ArrayList<String>()
def object_a = jsonSlurper.parseText(process.text)
def object = object_a.replaceAll(/_/, ' ')

assert object instanceof Map
for(i=0;i<object.data.size();i++){        artifacts.add(object.data[i].feature)
 }

我已经尝试过replaceAll("/_/", ' ')

感谢您阅读本文:)

标签: jsonjenkinsgroovy

解决方案


replaceAll()仅为 定义String,但您试图在 的结果上使用它JsonSlurper.parseText(),它的类型为Object.

这应该有效:

def object = jsonSlurper.parseText(process.text.replaceAll('_', ' '))

推荐阅读