Java 通过AJAX调用将JSON对象列表传递给控制器
下面是我试图传递的数据Java 通过AJAX调用将JSON对象列表传递给控制器,java,json,ajax,rest,classcastexception,Java,Json,Ajax,Rest,Classcastexception,下面是我试图传递的数据 var data=[{“TAG”:“Taxes”,“comments”:“Enter comments”},{“TAG”:“Taxes”,“comments”:“Enter comments”}]; 向控制器发布数据的Ajax调用: $.ajax({ 类型:“POST”, url:“rest/url”, 数据:JSON.stringify(数据), contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 成功:函数(结果){ 控制
var data=[{“TAG”:“Taxes”,“comments”:“Enter comments”},{“TAG”:“Taxes”,“comments”:“Enter comments”}];
向控制器发布数据的Ajax调用:
$.ajax({
类型:“POST”,
url:“rest/url”,
数据:JSON.stringify(数据),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(结果){
控制台日志(结果);
},
错误:函数(xml、状态、xhr){
obj=(xml.responseText);
}
});
@RequestMapping(value=“/url”,method=RequestMethod.POST,consumes=“application/json”,products=“application/json”)
公共@ResponseBody
LinkedHashMap getData(@RequestBody列表数据,HttpServletRequest1){
System.out.println(“内部控制器:“+data.getClass())//获取Arraylist对象
DataDTO dto1=data.get(0);//获取类强制转换异常
在上面的代码中,我能够以列表格式获取控制器中的数据,但是当我将对象初始化到DTO类时,我得到的是
ClassCastException
您的DataDTO
类应该如下所示,因为在AJAX
中,您使用的是标记和备注
。但是在DataDTO
类中t是标记
和备注
。因此,请按以下方式更改您的类:
public class DataDTO {
private String TAG;
private String REMARKS;
//Getters and setters
}
发布代码< > DATADTO < /代码>类。@ StuiHojja是一个简单的POJO类公共数据DATADTO {String Tabor;字符串注释;GETTER和SETTEST}}我已经考虑过这些情况,但我仍然得到这个错误。我实际上在JSON对象中使用下面的代码添加了一行。$Simult.DATA。unSHIFT({标签:‘选择标记’,注释:‘输入新的注释’});但当我在控制台日志中打印数据时,我又得到了一个键[{“TAG”:“Taxes”,“comments”:“Enter comments”、“$$hashKey”:“object:280”}]因此,为了在我的DTO类中处理它,我使用getter和setter@RishiBeohar将$$hashKey
从DataDTO
类中删除,该类由angularjs
添加。在ajax调用中使用angular.toJson();
而不是JSON.stringify()
。仍会收到此错误“请求处理失败;嵌套异常为java.lang.ClassCastException:java.util.LinkedHashMap无法转换为”是否有其他方法可以读取控制器中的JSON对象列表?如果我可以单独读取每个JSON对象,这将非常有帮助。