【发布时间】:2014-03-01 21:58:16
【问题描述】:
我有
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
SessionInfo register(UserProfile profileJson){
...
}
我这样传递profileJson:
http://server/url?profileJson={"email": "mymail@gmail.com"}
但我的 profileJson 对象具有所有空字段。我应该怎么做才能让spring解析我的json?
【问题讨论】:
-
将 JSON 传递给查询参数没有意义。您至少需要对其进行 URL 编码。
-
您将 json 作为 URL 参数而不是正文(这是默认值)传递。通常将 JSON 作为参数传递是没有意义的。使用
@RequestParam注释您的方法参数。但是,如前所述,您应该将其作为请求的主体传递,也可能作为 POST 而不是 GET 请求传递。 -
你几乎肯定想在这里使用 POST,拥有获取请求主体的情况非常罕见 (stackoverflow.com/questions/978061/http-get-with-request-body)
-
我用的是jsonp,不支持POST。使用 @RequestParam 注释参数会出现异常“未找到匹配的编辑器或转换策略”
-
只需将参数获取为
String并自行转换即可。
标签: java json spring spring-mvc