2017-09-24 116 views
0

因此,我跟着其他一些問題,關於如何設置彈簧引導控制器來解析傳入數據,這是對象數組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

我不知道什麼嘗試。

回答

0

我覺得應該是:

public @ResponseBody RequestWrapper postIt(@RequestBody Response[] req) 

鑑於你RequestWrapper POJO,正確的JSON是以下形式:

{ 
    "items": [ 
    ... 
    ] 
} 
+0

的問題是在你的答案的第二部分,現在我可以獲取我的數據。謝謝 –