【发布时间】:2011-12-14 14:22:54
【问题描述】:
我有一个这样的列表:
def bookList = Book.list()
并希望将其呈现为 XML/JSON,最好使用这种方法:
render Book.list() as XML
但是,我只想呈现该列表的特定字段,例如:field1、field2、field3。其他无用的东西不会显示。
【问题讨论】:
我有一个这样的列表:
def bookList = Book.list()
并希望将其呈现为 XML/JSON,最好使用这种方法:
render Book.list() as XML
但是,我只想呈现该列表的特定字段,例如:field1、field2、field3。其他无用的东西不会显示。
【问题讨论】:
如果您的案例足够简单,您可以收集您需要的内容,例如:
def output = Book.list().collect { [
field1: it.field1,
field2: it.field2,
field3: it.field3
] }
render output as XML
使用构建器(来自 Don 的回答)也是一个很好的解决方案。
【讨论】:
如果您想密切控制 XML 输出,您应该使用 Grails 的 XMLBUilder 而不是 as XML。这里的an example 展示了如何使用 JSONBuilder 渲染对象,不包括 class、metaClass 等属性。
仅修改此示例需要生成 XML 而不是 JSON 是实例化 XMLBuilder 而不是 JSONBuilder。
【讨论】: