Ajax传递数组与后端接收
在此记录刚开始做开发的时候,Ajax都不怎么会用,都只是传一些简单的字符串,那Ajax怎么将数组传到服务器,先看一下Ajax的结构
//建立两种类型的数组,这两种类型的数组都是经常用到的
var arryA = new Array();
var arryB = new Array();
arryA.push({"name": "张三", "sex": "男"});
arryA.push({"name": "花花", "sex": "女"});
arryA.push({"name": "黑皇", "sex": "狗"});
console.log(arryA);
arryB.push("aaa","bbb","ccc");
console.log(arryB);
$.ajax({
url: "", //上传URL
type: "POST", //请求方式
data: {
"test": "aaa",
"test2": "bbb",
"arryA": JSON.stringify(arryA),//将数组转化成json字符串
"arryB": JSON.stringify(arryB)}, //需要上传的数据
dataType: "JSON", //设置接受到的响应数据的格式
success: function (data) { //请求成功
console.log(data);
},
error: function () {
alert("出错啦...");
},//表示如果请求响应出现错误,会执行的回调函数
});
前端打印效果:注意看一下这两种数组的格式
后端接收代码
String test = request.getParameter("test");//正常获取数据点的代码
String arryA = request.getParameter("arryA");//注意此时获取的是json字符串
String arryB = request.getParameter("arryB");//而不是获取的数组,所以是不能直接使用的
System.out.println("test=" +test);
System.out.println("arryA=" +arryA);
System.out.println("arryB=" +arryB);
//将json字符串转成jsonarry
JSONArray jsonarryA = JSON.parseArray(arryA);
JSONArray jsonarryB = JSON.parseArray(arryB);
/*
* arryA和arryB是两种数组,
* arryA类似于 List<Map<String, Object>>数组,可传输的数据更加复杂
* arryB类似于List<>数组,传输的数据相对较简单
* 日常用的比较多的是 List<Map<String, Object>>
* 以下为两种数组转化为对象,就可以获取你想要的数据了*/
/*A数组需要先jsonarryA.get(0)根据索引获取map数组的字符串,再将map转为json对象
* 然后就可以根据Key获取Value值*/
JSONObject myobjA = JSONObject.parseObject(jsonarryA.get(0).toString());
System.out.println(myobjA.getString("name"));
System.out.println(myobjA.getString("sex"));
/*B数组直接就可以用一个循环取数据*/
System.out.println(jsonarryB.get(0));
看一下打印效果:至此前端到后端的数组的传输和接收就ok了
创作不易,如果这篇文章能够帮助到你,希望能关注或收藏一下博主,如果文章内容有问题也可留言讨论,我们一起学习,一起进步!!