0

我有 grails 3.1 应用程序。

下面是自定义元素的代码,它使用了 JSON marshaller,效果很好。

JSON.createNamedConfig("memeListView", {
            JSON.registerObjectMarshaller(Meme) { Meme memeIns ->
                return [
                        caption: memeIns.caption,
                        likeCount: memeIns.likeCount,
                ]
            }
        })

但是,我已经为 XML 编组器尝试了上述代码,但它显示了整个对象属性,而不是必需的。下面是 XML 编组的代码。

XML.createNamedConfig("memeListView", {
                XML.registerObjectMarshaller(Meme) { Meme memeIns ->
                    return [
                            caption: memeIns.caption,
                            likeCount: memeIns.likeCount,
                    ]
                }
            })

在行动部分

JSON.use('memeListView'){
      render memesList as JSON
}

请建议我,如何对 xml 响应进行编组。

4

1 回答 1

1

我想你必须返回一些类似 XML 的东西。我认为 xml marshaller 传入了第二个参数。

所以也许(从记忆中尝试):

XML.createNamedConfig("memeListView", {
    it.registerObjectMarshaller(Meme) { Meme memeIns, xml ->
        xml.build {
            caption(memeIns.caption )
            likeCount( memeIns.likeCount )
        }
    }
})

或者

XML.createNamedConfig("memeListView", {
    it.registerObjectMarshaller(Meme) { Meme memeIns, xml ->
        xml.attribute 'caption', memeIns.caption
        xml.attribute 'likeCount', memIns.likeCount
    }
})

取决于您希望 XML 的外观如何?

于 2016-04-10T03:52:28.657 回答