如何为类创建多个自定义JSON编组器

时间:2014-11-25 14:56:01

标签: json grails

我需要有几个自定义的JSON marshallers,因为我想以不同的方式为不同的目的进行编组。我知道如何使用以下方法设置自定义marshaller应用程序:

JSON.registerObjectMarshaller(MyClass) {
...
}  

但这让我对这个特殊的定义感到困惑。

我怎样才能创建一个adhoc marshaller,比方说,只有一种方法?

2 个答案:

答案 0 :(得分:5)

您可以拥有Named Configuration for Object MarshallersHere 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"
}