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

相關文章
相關標籤/搜索