grails XML与JSON响应

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达到相同的效果.

相关文章
相关标签/搜索