【问题标题】:How to have several custom JSON marshaller for a class如何为一个类拥有多个自定义 JSON 编组器
【发布时间】:2014-11-25 14:56:00
【问题描述】:

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

JSON.registerObjectMarshaller(MyClass) {
...
}  

但这让我对这个特殊的定义很感兴趣。

我怎样才能为一种方法创建一个临时编组器?

【问题讨论】:

    标签: json grails


    【解决方案1】:

    您可以拥有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
    }
    

    【讨论】:

    • 无耻插件:如果您有许多命名编组器,您可以使用我的Grails Json Apis 插件使用域类注释来简化它们的定义。
    【解决方案2】:

    如果 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"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多