grails XML与JSON响应

Grails支持一些不同的方法来产生XML和JSON响应. 第一个是通过 render 方法.
render方法可以传递一个代码块来实现XML中的标记生成器:


def list = {
def results = Book.list()
render(contentType:"text/xml") {
    books {
        for(b in results) {
            book(title:b.title)
        }
    }   
}

}

使用render方法输出JSON
render 同样被用于输出JSON:


def list = {
def results = Book.list()
render(contentType:"text/json") {
    books {
        for(b in results) {
            book(title:b.title)
        }
    }   
}

}

自动XML列集(Marshalling)

(译者注:在此附上对于列集(Marshalling)解释:对函数参数进行打包处理得过程,因为指针等数据,必须通过一定得转换,才能被另一组件所理解。可以说列集(Marshalling)是一种数据格式的转换方法。)

Grails同样支持自动列集(Marshalling) domain类 为XML,通过特定的转换器.

首先,导入grails.converters 类包到你的controller(控制器):

import grails.converters.*

现在,你可以使用下列高度易读的语法来自动转换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达到相同的效果.

你可能感兴趣的:(grails,groovy)