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);