【发布时间】:2014-11-25 14:56:00
【问题描述】:
我需要有几个自定义 JSON 编组器,因为我想以不同的方式编组以用于不同的目的。我知道如何使用以下方法设置自定义编组器应用程序:
JSON.registerObjectMarshaller(MyClass) {
...
}
但这让我对这个特殊的定义很感兴趣。
我怎样才能为一种方法创建一个临时编组器?
【问题讨论】:
我需要有几个自定义 JSON 编组器,因为我想以不同的方式编组以用于不同的目的。我知道如何使用以下方法设置自定义编组器应用程序:
JSON.registerObjectMarshaller(MyClass) {
...
}
但这让我对这个特殊的定义很感兴趣。
我怎样才能为一种方法创建一个临时编组器?
【问题讨论】:
您可以拥有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
}
【讨论】:
如果 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"
}
【讨论】: