《PHP生成嵌套JSON解决思路_.docx》由会员分享,可在线阅读,更多相关《PHP生成嵌套JSON解决思路_.docx(5页珍藏版)》请在三一文库上搜索。
1、PHP生成嵌套JSON解决思路_ PHP生成嵌套JSON ( aa: Id: 0, title: 标题, , Id: 1, title: 标题, , bb: . , . ) PHP如何生成这种嵌套的JSON -解决方案- /* Json数据格式化 * param Mixed $data 数据 * param String $indent 缩进字符,默认4个空格 * return JSON */ function jsonFormat($data, $indent=null) / 对数组中每个元素递归进行urlencode操作,爱护中文字符 array_walk_recursive($data,
2、 jsonFormatProtect); / json encode $data = json_encode($data); / 将urlencode的内容进行urldecode $data = urldecode($data); / 缩进处理 $ret = ; $pos = 0; $length = strlen($data); $indent = isset($indent)? $indent : ; $newline = n; $prevchar = ; $outofquotes = true; for($i=0; $i=$length; $i+) $char = substr($dat
3、a, $i, 1); if($char= $prevchar!=) $outofquotes = !$outofquotes; elseif($char= -解决方案- $char=) $outofquotes) $ret .= $newline; $pos -; for($j=0; $j$pos; $j+) $ret .= $indent; $ret .= $char; if($char=, -解决方案- $char= -解决方案- $char=) $outofquotes) $ret .= $newline; if($char= -解决方案- $char=) $pos +; for($j=
4、0; $j$pos; $j+) $ret .= $indent; $prevchar = $char; return $ret; /* 将数组元素进行urlencode * param String $val */ function jsonFormatProtect($val) if($val!=true $val!=false $val!=null) $val = urlencode($val); header(content-type:application/json;charset=utf8); $arr = array( aa = array( array( Id = 0, title = 标题 ), array( Id = 1, title = 标题 ), ), bb = array( array( Id = 2, title = 标题 ), array( Id = 3, title = 标题 ), );echo jsonFormat($arr); aa: Id:0, title:标题 , Id:1, title:标题 , bb: Id:2, title:标题 , Id:3, title:标题 更多信息请查看IT技术专栏 .