我需要有几个自定义的JSON marshallers,因为我想以不同的方式为不同的目的进行编组。我知道如何使用以下方法设置自定义marshaller应用程序:
JSON.registerObjectMarshaller(MyClass) {
...
}
但这让我对这个特殊的定义感到困惑。
我怎样才能创建一个adhoc marshaller,比方说,只有一种方法?
答案 0 :(得分:5)
您可以拥有Named Configuration for Object Marshallers。 Here is an example我最近遇到过。
JSON.createNamedConfig( 'myDesiredApi' ) {
it.registerObjectMarshaller( SomeDomain ) { SomeDomain someDomain ->
// Desired response map
}
}
渲染响应时,用法如下:
JSON.use( 'myDesiredApi' ) {
render someDomain as JSON
}
答案 1 :(得分:0)
如果JSON用于一个方法,您只需使用Groovy JsonBuilder实用程序生成JSON:
def response = new groovy.json.JsonBuilder()
response {
property1 myClass.property1
property2 myClass.property2
}
response.toPrettyString()
将输出:
{
"property1" : "value_1",
"property2" : "value_2"
}