Spring MVC:发布请求和带有数组的json对象:错误请求
问题内容:
我正在尝试使用Spring MVC从http POST请求中检索参数。
该请求包含以下json对象(content-type:application / json),该对象本身包含customObjects数组:
{
"globalId":"338",
"lines":[
{
"id": "someId",
"lib":"blabla",
...
}
]
}
这是我要使用的代码:
@RequestMapping(method = RequestMethod.POST, value = "/valider")
@ResponseBody
public void valider(final HttpServletRequest request, @RequestParam("globalId") final String globalId, @RequestParam("lines") final MyCustomObject[] lines) {
我得到的只是一个“错误请求”错误(http 400)。
是否可以分别检索两个参数“ globalId”和“
lines”?还是因为它们在同一个json对象中,所以必须将其视为具有单个参数?当发布请求中有多个参数时,如何进行?
问题答案:
我认为您正在寻找类似@@ RequestBody之类的东西。创建一个类来表示您的JSON数据。在您的情况下,该类将包含两个成员变量-
globalId作为字符串,而lines作为其表示的对象的数组。然后在控制器方法中,将在此类类型上使用@RequestBody批注,以便Spring能够将JSON转换为对象。检查以下示例。
http://www.leveluplunch.com/java/tutorials/014-post-json-to-spring-rest-
webservice/
http://www.techzoo.org/spring-framework/spring-mvc-requestbody-json-
example.html