java - 通过 AJAX 调用将 JSON 对象列表传递给 Controller

标签 java json ajax rest classcastexception

下面是我试图传递的数据

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 中您使用的是 TAGREMARKS。但在 DataDTO 类中,它是 TAGRemarks。因此,请像下面这样更改您的类(class):

public class DataDTO {
    private String TAG;
    private String REMARKS;
    //Getters and setters
}

关于java - 通过 AJAX 调用将 JSON 对象列表传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58130672/

相关文章:

java - 如何将 JPasswordField 中的文本剪切/复制为字符数组?

mysql - 函数 json_object 不存在

javascript - 如果表很大,我对表中元素的一点 ajax 就会中断。怎么修?

javascript - 在主干路由中包含根

java - Java 中的 FORTRAN EXTERNAL 概念

java - 如何计算传递给 renderscript 文件的数组

java - 如何在 Java 中读取/写入进程

javascript - JSON 解析器不适用于 Angular ng-repeat

java - 使用 GSON 解析没有数组名称的 JSON 字符串

javascript - 使用 XMLHttpRequest() 进行 Ajax 调用是否已过时?