Generar JSON con Groovy 1.8
Una de las muchas novedades que vinieron con Groovy 1.8 fue el soporte nativo para generar y leer JSON.
Llevo un par de días estando trabajando con este soporte JSON para reunir datos importados de distintas fuentes, y luego poder mantener los datos resultantes en un formato estructurado. Principalmente porque no todos son necesarios a día de hoy, pero a futuras se puede echar mano de ellos.
Después de hacer todo lo necesario unificar todos los datos en un map en memoria, para persistir el JSON, he hecho uso de JsonBuilder.
Sería algo así:
def builder = new groovy.json.JsonBuilder()
builder.data(){
for (item in items){
"${item['name']}"() {
zone(item['zone'])
position(item['position'])
....
....
}
}
}
Esto lo que generaría es algo de una estructura como:
{"data":
{"name1": { "zone" : "zone1", "position": "position1", ... }}
{"name2": { "zone" : "zone2", "position": "position2", ... }}
...
...
}
Después tan sólo debía escribirlo en un fichero:
new File("path/to/file.json").write(builder.toString())
Y listo.