Spring Boot通过ajax向控制器发送数组对象
问题描述:
因此,我跟着其他一些问题,关于如何设置弹簧引导控制器来解析传入数据,这是对象数组。Spring Boot通过ajax向控制器发送数组对象
我在明年的形式发送数据:
var myData = [ {lang_id : 1, title : "blabla", description : "blablabla"}, {lang_id : 2, title : "der text", description : "der text"}, ... ]
$.ajax({
url: "/test2",
data: JSON.stringify(myData),
type: "POST",
dataType:"json",
contentType:'application/json'
,success : function(res){
console.log("ok!", res.data);
}
,error : function(a,b,c){
console.log("err!", a, b, c);
}
});
根据其他的答案,我已经作出了响应和响应包装对象。
public class Response {
private Integer lang_id;
private String title;
private String description;
//getter and setters
}
public class RequestWrapper {
private List<Response> items;
//getters and setters
}
然后,我把我的控制器如下:
@PostMapping(value="/test2")
public @ResponseBody RequestWrapper postIt(@RequestBody RequestWrapper req) {
System.out.printf("\n\n%s\n\n", req);
return req;
}
任何的每一个回答有过这样的解决方案,然而,这一个不适合我的工作。我收到以下错误:
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of com.mypackage.controllers.RequestWrapper out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.mypackage.controllers.RequestWrapper out of START_ARRAY token
我不知道什么尝试。
答
我觉得应该是:
public @ResponseBody RequestWrapper postIt(@RequestBody Response[] req)
鉴于你RequestWrapper
POJO,正确的JSON是以下形式:
{
"items": [
...
]
}
的问题是在你的答案的第二部分,现在我可以获取我的数据。谢谢 –