Если вам нужен более многократно используемый код, вы можете создать новый класс с открытыми свойствами, которые вы хотите отобразить в результате json.
class MyJSONResult(){
String name
String age
String report
// add more properties as needed
// constructor
MyJSONResult(A a, B b){
name = a.name
age = a.name
report = b.report
}
}
//when you need json result,
import grails.converters.JSON
def json = new MyJSONResult(a, b)
render json as JSON
Хорошая вещь о создании нового класса иОбъект в том, что вы можете использовать его повторно.Например, если вам нужно показать тот же результат на странице gsp, вы можете передать объект представлению и получить доступ к его свойствам.
def json = new MyJSONResult(a, b)
render view:'myview', model:[myVar: json]
// in gsp views
${myVar.name}
Таким образом любая бизнес-логика, использованная вами при создании полезной нагрузки json, можетбыть использованы для вашего API или в любом другом месте, вам может понадобиться использовать их