如何使用groovy创建JSON嵌套键
下面是创建JSON的代码如何使用groovy创建JSON嵌套键,groovy,Groovy,下面是创建JSON的代码 import groovy.json.*; def input='{\"env\": {\"a\": 1,\"b\": 2,\"c\": 3,\"d\": 4}}'; def jsonSlurper = new JsonSlurper(); def inputJson= jsonSlurper.parseText(input); def mapping = jsonSlurper.parseText("{}"); def NO2 = jsonSlurper.pa
import groovy.json.*;
def input='{\"env\": {\"a\": 1,\"b\": 2,\"c\": 3,\"d\": 4}}';
def jsonSlurper = new JsonSlurper();
def inputJson= jsonSlurper.parseText(input);
def mapping = jsonSlurper.parseText("{}");
def NO2 = jsonSlurper.parseText("{}");
def CO2 = jsonSlurper.parseText("{}");
def SO2 = jsonSlurper.parseText("{}");
def CO = jsonSlurper.parseText("{}");
NO2["NO2"] = inputJson.env.c
mapping["ENVIRONMENT"] = NO2
CO2["CO2"] = inputJson.env.a
mapping["ENVIRONMENT"] = CO2
SO2["SO2"] = inputJson.env.d
mapping["ENVIRONMENT"] = SO2
CO["CO"] = inputJson.env.b
mapping["ENVIRONMENT"] = CO
def finalJson = new JsonBuilder(mapping).toPrettyString();
println finalJson
在上面的代码中,它创建的JSON如下所示:
{
"ENVIRONMENT": {
"CO": 2
}
}
但我不明白为什么它忽略了二氧化碳、二氧化氮和二氧化硫
我想要的输出:
{
"ENVIRONMENT": {
"CO2": 1,
"CO":2,
"NO2":3,
"SO2":4
}
}
有没有办法通过使用这个方法我可以得到这个JSON
谢谢:)在java中,地图只能有唯一的键。通常最后的
put
操作获胜
...
mapping["ENVIRONMENT"] = SO2
mapping["ENVIRONMENT"] = NO2
另外,您的代码是hor。。真是多余
做事的方法是:
import groovy.json.*
def input='{"env": {"a": 1,"b": 2,"c": 3,"d": 4}}' // no need to escape " in single-quoted litterals
def env = new JsonSlurper().parseText( input ).env
Map out = [ ENVIRONMENT:[
NO2:env.c,
CO2:env.a,
SO2:env.d,
CO:env.b,
] ]
String finalJson = JsonOutput.toJson out
assert '{"ENVIRONMENT":{"NO2":3,"CO2":1,"SO2":4,"CO":2}}' == finalJson
请仔细阅读您的代码。您正在多次覆盖映射[“环境”]。那么我如何添加所有键呢