Reputation: 1745
I'm pretty used to Grails converters, where you can convert any object to a JSON representation just like this (http://grails.org/Converters+Reference)
return foo as JSON
But in plain groovy, I cannot find an easy way to do this (http://groovy-lang.org/json.html)
JSONObject.fromObject(this)
return empty json strings...
Am I missing an obvious Groovy converter ? Or should I go for jackson or gson library ?
Upvotes: 88
Views: 174496
Reputation: 8573
I couldn't get the other answers to work within the evaluate console in Intellij so...
groovy.json.JsonOutput.toJson(myObject)
This works quite well, but unfortunately
groovy.json.JsonOutput.prettyString(myObject)
didn't work for me.
To get it pretty printed I had to do this...
groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(myObject))
Upvotes: 31
Reputation: 3046
You can use JsonBuilder for that.
Example Code:
import groovy.json.JsonBuilder
class Person {
String name
String address
}
def o = new Person( name: 'John Doe', address: 'Texas' )
println new JsonBuilder( o ).toPrettyString()
Upvotes: 12
Reputation: 171054
Do you mean like:
import groovy.json.*
class Me {
String name
}
def o = new Me( name: 'tim' )
println new JsonBuilder( o ).toPrettyString()
Upvotes: 166