Grails支持一些不一样的方法来产生XML和JSON响应. 第一个是经过 render 方法. render方法能够传递一个代码块来实现XML中的标记生成器:java
<!-- lang:java --> def list = { def results = Book.list() render(contentType:"text/xml") { books { for(b in results) { book(title:b.title) } } }
}json
使用render方法输出JSON render 一样被用于输出JSON:dom
<!-- lang: java --> def list = { def results = Book.list() render(contentType:"text/json") { books { for(b in results) { book(title:b.title) } } }
}函数
自动XML列集(Marshalling)指针
(译者注:在此附上对于列集(Marshalling)解释:对函数参数进行打包处理得过程,由于指针等数据,必须经过必定得转换,才能被另外一组件所理解。能够说列集(Marshalling)是一种数据格式的转换方法。)code
Grails一样支持自动列集(Marshalling) domain类 为XML,经过特定的转换器.xml
首先,导入grails.converters 类包到你的controller(控制器):it
import grails.converters.*import
如今,你能够使用下列高度易读的语法来自动转换domain类为XML:打包
render Book.list() as XML 一个使用转换器的替代方法是使用Grails的codecs 特性. codecs特性提供了 encodeAsXML 和 encodeAsJSON方法: def xml = Book.list().encodeAsXML() render xml 自动JSON列集(Marshalling)
Grails一样支持自动列集(Marshalling)为JSON经过一样的机制. 简单替代XML为JSON:
render Book.list() as JSON
做为替代,能够使用encodeAsJSON达到相同的效果.