如何将java map对象格式化为groovy map
我正在尝试使用java生成groovy代码,我将在groovyscript引擎上部署java,用于动态JSON数据映射。在做这件事的时候,我坚持这个问题。我正在用java生成map对象 以下面的格式
finalmap--> {ENVIRONMENT={TEST=Functions.split(input.env.TEST,"/"), CO2=input.env.CO2}}
因此,为了将其转换为groovy脚本映射对象,我使用了以下代码
groovyScript.append("Map output ="+"\n"+new JSONObject(finalmap).toString(2).replace("\"", "").replace("{", "[").replace("}", "]").replace("`", "\"")+";");
String result=new String(groovyScript).replaceAll("\\\\", "\"");
此代码将地图对象转换为:
Map out =
[ENVIRONMENT: [
TEST: Functions.split(input.env.TEST,"/"),
CO2: input.env.CO2
]];
但是,当我使用很多替换函数时,如果键或值具有替换字符,那么它也将替换该字符
所以,不用replace函数,我们就可以得到输出
# 1 楼答案
试试map.inspect()
# 2 楼答案
我使用recusrion做了以下操作。缩进可以使用字符串格式
输出: 这个没有格式化,使用字符串格式我们可以包含标识