java renderjson用法_grails 中render xml json 使用记录

只有使用了,才知道方便和强大啊,这主要还是依赖于groovy的MarkupBuilder,详见:http://groovy.codehaus.org/Creating+XML+using+Groovy%27s+MarkupBuilder

只有理解了它,在grials里使用render xml才能如鱼得水啊。其实很简单

def xml = new MarkupBuilder(writer)

xml.records() {

car(name:'HSV Maloo', make:'Holden', year:2006) {

country('Australia')

record(type:'speed', 'Production Pickup Truck with speed of 271kph')

}

}

对应的xml文档:

Australia

Production Pickup Truck with speed of 271kph

只要分清对应关系就可以了。属性和属性值,节点,节点的值怎么画到groovy里。

下面是controller里的返回xml代码:

def tests=TestAjaxPage.findAll()

render(contentType:"text/xml") {

tests1 {

for(b in tests) {

test(title:b.title,dateCreated:b.dateCreated){

h b.content

}

}

}

}

对应的返回文档为:

haha

这其实对于b/s,再混用c/s的程序中交换数据还是很有用的,so easy

render json就要麻烦点了,主要是1.1版本和1.3.6版本写法不一样:

先写1.1的吧:

render(contentType:"text/json") {

max "max"

resultList{

Book.getAll().each{oneitem->

Book(

id:oneitem.id,

name:oneitem.name,

)

}

}

}

1.3.6的写法如下:

def tests=TestAjaxPage.findAll()

render(contentType:"text/json") {

max  (max1:"max")

tests1= array{

tests.each {one->

TestAjaxPage(

id:one.id,

content:one.content,

title:one.title,

dateCreated:one.dateCreated

)

}

}

}

返回数据:{"max":{"max1":"max"},"tests1":[{"id":1,"content":"qewrqwe","title":"qwereqwr","dateCreated":"2011-01-07T10:11:52Z"}]}

最后var e=originalRequest.responseText.evalJSON();就是在js里调用下.evalJSON(),就可以看做对象访问数据。

版本不同,我手里一致用1.1的中文文档,做的时候自己用的1.3.6,郁闷了好久,出不来。最后看1.3.6的文档才发现写法不一样呢

天苍苍,野茫茫,风吹草底见牛羊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值