从 Grails 中的控制器呈现 json 视图

Rendering json views from controller in Grails

我发现 Grails 3.2+ 支持 json 视图,这为响应提供了一种优雅的方式 json.

那么有没有一种方法可以让我们从控制器呈现一个自定义 JSON 模板,而不是在请求 URL 中使用“.json”。我尝试使用 render 方法,但一直收到无法找到模板的错误。另外阅读文档我似乎无法找到一种方法来做到这一点。这是支持的东西吗?

在 url 中包含 .json 只是指定接受内容类型的另一种方式。您可以改为指定 header。

有关如何使用 json 视图的说明,请阅读文档:http://views.grails.org/latest/

class Controller {
    def index() {
        [foo: new Foo()]
    }
}

/grails-app/views/controller/index.gson

@Field Foo foo

json g.render(foo)

您可以使用 render(json:"path") 从控制器渲染任意 gson 视图。

SomethingController{

def giveMeJson(){
      render(json:"my_template",model:[some_data:some_instance])
}

}