我正在测试一个控制器,只是想要检索JSON。但是,我注意到控制器返回数据,但它没有使用键/值对正确返回JSON。它实际上只返回数据。但是我注意到,如果我使用Incident.getAll(),它会正确返回JSON。例如,它将返回[INCIDENTID:“Value”],而不是使用只返回数据的executreQuery。
我的代码:
def incident = Incident.executeQuery("select a.INCIDENTID from Incident a")
render incident as JSON
答案 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"}]