ajax传递多组对象到后台并解析
一.引入
平常我们在使用jquery ajax时,大多数是单一的参数,可能不会用到对象数组的,但是在某些情况下,就会遇到这个,(比如,我们需要批量添加一组人员的信息),这种情况下如果使用特殊字符串将各属性值隔开,然后每组数据之间再用特殊字符隔开也是可以做到的,但是这不标准,易出错,因此这时使用对象数组就能很好地解决上面的问题。
二.具体操作
(1)第一种方法
前台js
var list={}; //声明为一个对象,这是一个数组对象
var student1= new Object();
student1.name = '张三';
student1.sex = '男';
list[0] = student1;
var student2= new Object();
student2.name = '张三';
student2.sex = '男';
list[1] = student2;
$.ajax({
url : "**********",
data : {'students':JSON.stringify(list)},
dataType : "json",
success : function(data) {
}
});
JSONObject object=new JSONObject(students); List<Student> list = new ArrayList<Student>(); for(int i=0;i<object.length();i++){ JSONObject jsonOb = object.getJSONObject(i+""); String name= jsonOb.getString("name"); String sex = jsonOb.getString("sex"); list.add(new Student(name,sex)); }
这样就取到了前台传过来的多组对象了
(2)第二种方法
前台js
var list=new Array(); //创建一个数组
var student1= new Object();
student1.name = '张三';
student1.sex = '男';
list[0] = student1;
var student2= new Object();
student2.name = '张三';
student2.sex = '男';
list[1] = student2;
$.ajax({
url : "**********",
data : {'students':JSON.stringify(list)},
dataType : "json",
success : function(data) {
}
});
JsonObject object=(JsonObject)new JsonParser().parse(students); //创建JsonObject对象
JsonArray jsonArray = object.getAsJsonArray(); //得到为json的数组
for (JsonElement sftplog : jsonArray) {
JsonObject subObject=sftplog.getAsJsonObject(); //获取其中的一个对象
lists.add(new Student(subObject.get("name").getAsString(),subObject.get("sex").getAsString());
}