0

我在 post 请求中通过 XHR 发送 JSON 消息(内容类型:application/json;charset=UTF-8 - 我使用的是 firefox/chrome)。
但是,我无法在 play 1,.2.3 控制器中处理/接收 JSON 消息 - 可能是由于飞行员错误。任何见解/工作示例将不胜感激 - 谢谢

JSON 消息(在 JSONLint 中成功验证):

{"email":"admin1@test.com","password":"admin123"}

我应该查看 TypeBinder 还是从请求参数创建对象?

4

3 回答 3

1

您可以使用 play 中嵌入的 gson 来解析参数。在您的控制器方法中

MyParam myParam = new GsonBuilder().create().fromJson(request.params.get("myParam"), MyParam.class);
于 2012-10-03T06:43:45.940 回答
1

您也可以尝试使用 FLEXJSON ( http://flexjson.sourceforge.net/ ) 以避免遇到任何循环错误,尤其是在

于 2012-10-03T14:55:25.720 回答
0

我最终遍历 request.params.allSimple 以通过 request.params.get 获取值。我在这个值上使用了 JsonParser().parse 来获取 JSONElement。然后我在 JSONElement 上使用 getAsJsonObject() 来获取 JSONBody。我通过对 JSONBody 的 get 调用检索了所需的 JSONElements,然后通过 getAs 方法调用来获取实际值。我将更详细地研究 TypeBinders - 任何其他建议都将受到欢迎。

于 2012-10-01T21:54:34.707 回答