在groovy脚本中如何动态构建、解析和构建JSON
假设我有这样的json输入和输出负载在groovy脚本中如何动态构建、解析和构建JSON,groovy,Groovy,假设我有这样的json输入和输出负载 { "env": { "CO2": "2", "NO2": "3" } } 输出: { "payload": { "Environment": { "carbon-di-oxide": "2", "nitrogen-di-oxide": "3" } } } 假设映射json为: { "mapping": { "payload.Environment.carbon-di-o
{
"env": {
"CO2": "2",
"NO2": "3"
}
}
输出:
{
"payload": {
"Environment": {
"carbon-di-oxide": "2",
"nitrogen-di-oxide": "3"
}
}
}
假设映射json为:
{
"mapping": {
"payload.Environment.carbon-di-oxide": "env.co2",
"payload.Environment.nitrogen-di-oxide": "env.co"
}
}
因此,基于映射json,我如何创建动态json。
我写过这样的剧本:
import groovy.json.*;
def input='{\"env\": {\"CO2\": \"2\",\"NO2\": \"3\"}}';
def jsonSlurper = new JsonSlurper();
def finalJson = jsonSlurper.parseText('{}') ;
def inputJson= jsonSlurper.parseText(input) ;
finalJson["carbon-di-oxide"]=inputJson.env.CO2;
finalJson["nitrogen-di-oxide"]=inputJson.env.NO2;
def content=new JsonBuilder( finalJson).toPrettyString();
println("content-->"+content)
但在这里,我如何动态传递payload.Environment.carbon-di-oxide之类的嵌套输出,并基于javascript中类似json的映射创建输出。首先,将基于json映射生成groovy脚本。然后输入将被馈送,以产生预期的输出。您可以同时拆分映射json的键和值。并遍历结果列表以收集值/创建输出结构 以下内容基于您的示例代码。 请注意,我已经将您的映射修复为大写,其中您的输入是大写和从CO到NO2的二氧化氮 产出将是
{
"payload": {
"Environment": {
"carbon-di-oxide": "2",
"nitrogen-di-oxide": "3"
}
}
}
{
"payload": {
"Environment": {
"carbon-di-oxide": "2",
"nitrogen-di-oxide": "3"
}
}
}