【问题标题】:play framework handling json from jquery (with gson)从jquery播放框架处理json(使用gson)
【发布时间】:2012-06-02 14:06:48
【问题描述】:

我正在尝试使用 jquery 将以下内容发送到播放框架 (1.2.3) 中的控制器:

[{"name":"username","value":"abc"},{"name":"fullname","value":"abc def"},
{"name":"email","value":"abc@def.com"},{"name":"password","value":"111222"},
{"name":"password2","value":"111222"}]

在我的 play 1.2.3 控制器(我正在尝试使用 gson)中,我尝试使用 JsonElement/Object/Array 作为参数,但控制器内部的 JsonObject/ELement/Array 总是为空 - 不确定这是否正确方法。欢迎任何建议或更好的处理方式(我更愿意从 jquery 发送 json - 在播放中处理它以进行处理)。

public static void testForm(JsonObject json) 

【问题讨论】:

  • 我在复制 json 时犯了一个错误 - json 是有效的(我已经尝试过 jsonlint)
  • 不确定这个问题是否仍然有效,但您是否尝试过调用params.allSimple() 以获取Map<String,Object> 中的参数并查看您实际收到的内容?它可能被传递到 body 中,可以使用 public static void testForm( String body ) 捕获,然后从那里使用 gson 传递到对象中

标签: jquery json playframework gson


【解决方案1】:

如果那是您使用的确切 json 字符串,则您缺少数组 ] 的结束标记,请尝试将其添加到末尾。

【讨论】:

  • 感谢您的回复 - 缺少的元素只是将 json 复制到 stackoverflow 时的错误。这个问题仍然有效。
【解决方案2】:

您如何发送您的 json 以及如何在您的控制器中获取它? json 没有自动绑定,所以你必须明确

MyObject myObject = new GsonBuilder().create().fromJson(request.params.get("myObject");

【讨论】:

  • 最后是一个实际的回应 - 我会调查这个并回复反馈。显然,前两个响应者只擅长捕捉错别字。
猜你喜欢
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多