我想使用Spring的@RequestBody
注释将JSON从请求主体绑定到对象。是否可以在Grails控制器方法中使用它?如果没有,除了使用创建的request.JSON
对象之外,还有更优雅的方法吗?
以下是我要做的事情:
的 FooController.groovy:
def someMethod(@RequestBody Bar bar) {
render(bar.baz)
}
class Bar {
String baz
}
然后我将以下JSON发布到此端点:
{
"baz":"chicken"
}
我希望POST的响应为chicken
。
是否有可能,或者是否有其他机制将JSON绑定到这样的控制器参数?
谢谢!
答案 0 :(得分:3)
如果您在相关的URL映射中使用resource
或parseRequest
(有关详细信息,请参阅http://grails.org/doc/latest/guide/webServices.html),那么将解析传入的JSON并用于填充params
地图,即JSON
{
"baz":"chicken"
}
将设置params.baz == "chicken"
。然后,生成的params条目可以通常的方式绑定到命令对象中,您不需要注释action参数。