La representación de objetos usando JSON es muy sencilla pero si deseamos enviarla a un log, o imprimirla para depurar, más nos vale que esté correctamente formateada.
Groovy provee una clase que nos permite hacerlo de manera indolora. La clase en cuestión es groovy.json.JsonOutput y el método es prettyPrint.
def jsonWithoutFormat = """{"firstName":"John","lastName":"Smith", "age":25,"address":{"streetAddress":"212ndStreet", "city":"NewYork","state":"NY","postalCode":"10021"}, "phoneNumber":[{"type":"home","number":"212555-1234"}, {"type":"fax","number":"646555-4567"}]}""" def jsonFormatted = groovy.json.JsonOutput.prettyPrint(jsonWithoutFormat)
El resultado de prettyPrint:
{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "212ndStreet", "city": "NewYork", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212555-1234" }, { "type": "fax", "number": "646555-4567" } ] }
Al final hemos obtenido una cadena que representa un JSON correctamente formateado.