Grails:使用executeQuery渲染JSON

时间:2012-06-05 19:10:21

标签: json grails groovy

我正在测试一个控制器,只是想要检索JSON。但是,我注意到控制器返回数据,但它没有使用键/值对正确返回JSON。它实际上只返回数据。但是我注意到,如果我使用Incident.getAll(),它会正确返回JSON。例如,它将返回[INCIDENTID:“Value”],而不是使用只返回数据的executreQuery。

我的代码:

def incident = Incident.executeQuery("select a.INCIDENTID from Incident a")
render incident as JSON

1 个答案:

答案 0 :(得分:2)

executeQuery的结果是您指定的属性列表,而不是实际的域对象。例如:

TestDomain.executeQuery("select t.id from TestDomain") as JSON
===> [1, 2, 3]

如果您想要域对象,可以使用findAll代替。尝试这样的事情:

TestDomain.findAll("from TestDomain") as JSON
===>[{"class":"TestDomain","id":1,"name":"one"},
  {"class":"TestDomain","id":2,"name":"two"},
  {"class":"TestDomain","id":3,"name":"three"}]