We can generate an object-type json by groovy's json builder:
def builder = new groovy.json.JsonBuilder()
def root = builder.people {
person {
firstName 'Guillame'
lastName 'Laforge'
// Named arguments are valid values for objects too
address(
city: 'Paris',
country: 'France',
zip: 12345,
)
married true
// a list of values
conferences 'JavaOne', 'Gr8conf'
}
}
def jsonStr = builder.toString()
I like this type of syntax, but how to build an array-type json?
E.g.
[
{"code": "111", "value":"222"},
{"code": "222", "value":"444"}
]
I found some documents which say we should use JsonBuilder()
constructor:
def mydata = [ ["code": "111", "value":"222"],["code": "222", "value":"444"] ]
def builder = new groovy.json.JsonBuilder(mydata)
def jsonStr = builder.toString()
But I preferred the first syntax. Is it able to use it generate array-type json?
it is also possible to create list of closures and pass it to builder
I like conversion in the end more than builder,
The syntax you propose doesn't look possible, as I don't believe it's valid groovy. A closure such as
{"blah":"foo"}
doesn't makes sense to groovy, and you're going to be constrained by syntactical limitations. I think the best you're going to be able to do is something within the following: