Grails的REST控制器中,“params”不包含JSON负载。

4

我正在为我的应用编写REST API。

在POST请求中使用JSON负载:

{
   availableAfter: "2014-03-16"
   canRead: true
   rightName: "dsa"
}

问题在于,控制器的参数中没有来自有效载荷的值。但是,尽管如此,我可以使用 properties[*] 语法读取它们,就像这样:
right.properties['rightName', 'canRead'] = params;
right.availableAfter = params.date('availableAfter', 'yyyy-MM-dd');

属性'rightName'和'canRead'已设置正确。'availableAfter'不同(即使使用params.availableAfter,它也不为null)。

为什么会不同呢?

更新:Grails版本为2.3.6。

1个回答

5
您需要使用request.JSON来获取JSON-body。除非您在客户端序列化JSON对象并将其作为参数传递,否则params对象不包含它。

但是为什么我可以像这样从参数中读取它:right.properties['rightName','canRead'] = params; - dragonkhan
打印出“params”并查看它包含什么。 - injecteer
不,它们不会。['rightName','canRead']字段会根据我在客户端输入的内容而改变。 - dragonkhan
我曾经试图查找有关“parseRequest”的信息,但没有成功。 - injecteer
我在一个Grails 1.3.7项目中第一次看到它。 - injecteer
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接