我有一个对象,
def roles = account.roles
我想以JSON格式呈现它,如
[{'value':1, 'text':'Admin'},{'value':2,'text':'Owner'}, {'value':3,'text':'Sale'}]
当我执行这样的代码时,它无法正常工作,
render(contentType: "text/json"){[
"value" : roles.id,
"text" : roles.name
]}
它呈现的格式错误,如{"value":[1,2,3],"text":["Admin","Owner","Sale"]}
我试试这个
def res = roles.each(){
['value':it.id, 'text':it.name]
}
render res as JSON
它也没有用。
答案 0 :(得分:4)
使用collect
代替each
,例如
def res = roles.collect {['value':it.id, 'text':it.name]}
render res as JSON
答案 1 :(得分:-1)
您可以这样做,将角色渲染为JSON
或
render(contentType: "application/json") {
roles = array {
for (r in roles) {
role text: r.name, value:r.id
}
}
}
请参阅grails用户指南的xml and json responses部分