Grails 3 - 使用XML的Marshaller

时间:2016-04-10 03:38:18

标签: xml grails marshalling grails-3.1

我有grails 3.1应用程序。

下面是自定义元素的代码,它使用JSON marshaller,它可以很好地工作。

<div id="test"></div>

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

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

在行动部分

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

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

1 个答案:

答案 0 :(得分:1)

我想你必须返回一些XML-ish。我认为xml marshaller传递了第二个arg。

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

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的外观?