Groovy обладает хорошей функциональностью для создания json.
Ваши классы могут быть легко преобразованы в json:
import groovy.json.*
class SomeClass{
String name
int value
List someList = ['value1', 'value2', 'value3']
}
assert JsonOutput.toJson(new SomeClass(name:'myClass', value: 3)) ==
'{"value":3,"someList":["value1","value2","value3"],"name":"myClass"}'
, также легко создать свой собственный шаблонизатор.Например:
def SOME_CLASS_TEMPLATE = {SomeClass someClass->
[
the_json:[
message: 'Message',
name: someClass.name,
first_list_value: someClass.someList?.getAt(0)
]
]
}
assert JsonOutput.toJson(SOME_CLASS_TEMPLATE(new SomeClass(name:'myClass', value: 3))) ==
'{"the_json":{"message":"Message","name":"myClass","first_list_value":"value1"}}'
форматированный вывод json:
assert JsonOutput.prettyPrint(JsonOutput.toJson(SOME_CLASS_TEMPLATE(new SomeClass(name:'myClass', value: 3)))) ==
'''{
"the_json": {
"message": "Message",
"name": "myClass",
"first_list_value": "value1"
}
}'''
Также проверьте другие классы из пакета groovy.json ( JsonGenerator , JsonBuilder ) они могут быть более предпочтительными для ваших задач.