最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ajax前端的关联数组转json到后台方法

来源:动视网 责编:小采 时间:2020-11-27 19:59:34
文档

ajax前端的关联数组转json到后台方法

ajax前端的关联数组转json到后台方法:这次给大家带来ajax前端的关联数组转json到后台方法,ajax前端的关联数组转json到后台的注意事项有哪些,下面就是实战案例,一起来看一下。很多人碰到过ajax传值时无法直接传数组,而百度的大多数都是不能用的所以我想到了一个方法:第一步:将数组转换为jso
推荐度:
导读ajax前端的关联数组转json到后台方法:这次给大家带来ajax前端的关联数组转json到后台方法,ajax前端的关联数组转json到后台的注意事项有哪些,下面就是实战案例,一起来看一下。很多人碰到过ajax传值时无法直接传数组,而百度的大多数都是不能用的所以我想到了一个方法:第一步:将数组转换为jso
 这次给大家带来ajax前端的关联数组转json到后台方法,ajax前端的关联数组转json到后台的注意事项有哪些,下面就是实战案例,一起来看一下。

很多人碰到过ajax传值时无法直接传数组,而百度的大多数都是不能用的

所以我想到了一个方法:

第一步:将数组转换为json字符串

这是一个技术性的问题,百度说的JSON.stringify(arr)是不能转换关联数组的,甚至索引数组也是有很多缺点

所以我特意封装了个js递归函数

function arrToJSON(arr) {
 var json = {};
 for (var i in arr) {
 var vo=arr[i];
 if (typeof arr[i] == "object") {
 json[i]={};
 json[i] = arrToJSON(vo);
 } else {
 json[i] =vo;
 }
 }
 return JSON.stringify(json);
}

只要传入js多维数组,能把数组全部解析为字符串

这样就可以在ajax里面传值啦~~~

第二步 :

但是这样转换成的json字符串是不完整的,不能直接解析出全部的数组

如图

可以发现,这个函数会将下级的子json字符串给用斜杠转义,越往下走斜杠越多,

当后台json_decode 处理第一层级时,第二层其实仍是json_decode字符串

所以后台需要一个新的decode函数用于解析这个json字符串

/**
 * 解析前台传来的不完整json字符串
 */
private function json_decode_x($str)
{
 $data_arr = array();
 $arr = json_decode($str, 1);
 foreach ($arr as $x => $a) {
 if (preg_match('/":/', $arr[$x])) { //匹配
 $data_arr[$x] = $this->json_decode_x($a);
 } else {
 $data_arr[$x] = $a;
 }
 }
 return $data_arr;
}

这样的话,后台接收到json字符串,用这个函数解析,就可以得到完整正确的多维数组了

由于我的业务需求,是没有/" 这样的字符串的,所以可以用这个来判断子字符串是否还有json字符串可以解析,如果用到实际上项目,请修改该正则判断

当然有能力的人可以直接第一步改成完整的json字符串,这样后台可以直接用一个json_decode解析

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

怎样阻止JS的冒泡和浏览器的默认行为

JS怎样刷新父页面

js与canvas合成图片做出微信公众号海报功能

文档

ajax前端的关联数组转json到后台方法

ajax前端的关联数组转json到后台方法:这次给大家带来ajax前端的关联数组转json到后台方法,ajax前端的关联数组转json到后台的注意事项有哪些,下面就是实战案例,一起来看一下。很多人碰到过ajax传值时无法直接传数组,而百度的大多数都是不能用的所以我想到了一个方法:第一步:将数组转换为jso
推荐度:
标签: 方式 后台 json
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top