import groovy.json.JsonSlurper
def withtargetenv(env,closesure) {
def file = new File('test.json');
println(file.getText());
def jsonSlurper = new JsonSlurper();
def json = jsonSlurper.parseText(file.getText());
targetenv = json.get("envs").find {item -> item.name == env};
targetenv.servers.each {server ->
closesure.call(server);
}
}
withtargetenv("dev",{
param ->
println("hello ${param}");
println("good job");
})
withtargetenv("sit",{
param ->
println("hello ${param}");
println("good job");
})
test.json
{
"envs":[
{
"name": "dev",
"servers": ["dev_server1","dev_server2"]
},
{ "name": "sit",
"servers": ["sit_server1","sit_server2"]
}
]
}
def config = [:]
config.build = [:]
config.build.tool = "maven"
println config.getClass()
if(config instanceof Map){
println true
}
def result = (config.build && config.build in Map && config.build.tool) ? config.build.tool : null
println result