Grails中视图的JSON输出

Grails中视图的JSON输出,json,grails,controller,Json,Grails,Controller,好的,我有一个用Grails创建的非常简单的应用程序。 我使用自动Grails scaffold生成了一个域类(Person)及其生成的控制器: package contacts class PersonController { def scaffold = Person } 现在我想获得Person对象的JSON表示 我必须更改视图还是控制器?怎么做 谢谢。将以下内容添加到控制器中: def list = { params.max = Math.min(params.m

好的,我有一个用Grails创建的非常简单的应用程序。 我使用自动Grails scaffold生成了一个域类(Person)及其生成的控制器:

package contacts

class PersonController {

    def scaffold = Person

}
现在我想获得Person对象的JSON表示

我必须更改视图还是控制器?怎么做


谢谢。

将以下内容添加到控制器中:

def list = {
    params.max = Math.min(params.max ? params.int('max') : 10, 100)
    def personList = Person.list(params)
    withFormat {
        html {
            [personInstanceList: personList, personInstanceTotal: Person.count()]
        }
        json {
            render personList as JSON
        }
    }
}
这应该支持脚手架和JSON输出

您可以通过以下方式访问脚手架:

您可以通过以下方式以json的形式访问人员列表:


还有其他方法,但我喜欢这样做,让脚手架留在周围进行测试。

太好了。感谢您准确而全面的回答;)对我来说有点太复杂了:您应该在控制器中使用
static responseFormats=[“json”,“html”]
,并保持生成的代码原样(如
respond User.list(params).
)。不需要编写代码来处理格式。遗憾的是,我们应该能够使用scaffold和json,而不必生成任何控制器代码