下面是我试图传递的数据
var data=[{"TAG":"税费","REMARKS":"输入备注"},{"TAG":"税费","REMARKS":"输入备注"}];
Ajax 调用将数据发布到 Controller :
$.ajax({
type: "POST",
url: "rest/url",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
console.log(result);
},
error : function(xml, status, xhr) {
obj = (xml.responseText);
}
});
@RequestMapping(value = "/url", method = RequestMethod.POST,consumes="application/json",produces="application/json")
public @ResponseBody
LinkedHashMap<String, ArrayList> getData(@RequestBody List<DataDTO> data,HttpServletRequest request1) {
System.out.println("Inside Controller :"+data.getClass())// getting Arraylist object
DataDTO dto1=data.get(0);// getting class cast exception
在上面的代码中,我能够以列表格式在 Controller 中获取数据,但是当我将对象初始化为 DTO 类时,我收到 ClassCastException
。
最佳答案
您的 DataDTO
类应如下所示,因为在 AJAX
中您使用的是 TAG
和 REMARKS
。但在 DataDTO
类中,它是 TAG
和 Remarks
。因此,请像下面这样更改您的类(class):
public class DataDTO {
private String TAG;
private String REMARKS;
//Getters and setters
}
关于java - 通过 AJAX 调用将 JSON 对象列表传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58130672/