我有以下代码在Groovy中实现JSON:
def index = {
def list = WordList.list()
render(contentType:"text/json"){
LISTS {
for(item in list){
LIST (NAME: item.name, ID: item.id);
}
}
}
}
这几乎可以工作,但它没有显示多个结果,即NAME和ID字段在每个循环中被覆盖,导致只返回最后一条记录。使这个工作的正确语法是什么?
答案 0 :(得分:3)
在这种情况下,我的解决方案是显式构造JSON映射,然后将其呈现为JSON。
一个例子:
def list = WordList.list()
def json = []
list.each{ item ->
json << [name: item.name, id: item.id]
}
render json as JSON
您需要导入grails.converters.JSON才能使用此方法。
答案 1 :(得分:2)
def list = WordList.list()
list = list.collect { [name: it.name, id: it.id] }
render(contentType: 'application/json') {
[lists: list]
}