php JSON数据格式化(美化)的方法

互联网 19-10-16

一、使用 json_encode 输出

<?php header('content-type:application/json;charset=utf8'); $arr = array(     'status' => true,     'errMsg' => '',     'member' =>array(         array(             'name' => '李',             'gender' => '男'         ),         array(             'name' => '赵',             'gender' => '女'         )     ) );    echo json_encode($arr); ?>

(推荐学习:PHP视频教程)

输出:

{"status":true,"errMsg":"","member":[{"name":"\u674e","gender":"\u7537"},{"name":"\u8d75","gender":"\u5973"}]}

二、使用 jsonFormat 输出

<?php    /** Json数据格式化 * @param  Mixed  $data   数据 * @param  String $indent 缩进字符,默认4个空格 * @return JSON */ function jsonFormat($data, $indent=null){        // 对数组中每个元素递归进行urlencode操作,保护中文字符     array_walk_recursive($data, '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($data, $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=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(     'status' => true,     'errMsg' => '',     'member' =>array(         array(             'name' => '李',             'gender' => '男'         ),         array(             'name' => '赵',             'gender' => '女'         )     ) );    echo jsonFormat($arr);    ?>

输出:

{     "status":true,     "errMsg":"",     "member":[         {             "name":"李",             "gender":"男"         },         {             "name":"赵",             "gender":"女"         }     ] }

三、php5.4 以后,json_encode增加了JSON_UNESCAPED_UNICODE , JSON_PRETTY_PRINT 等几个常量参数。使显示中文与格式化更方便。

<?php header('content-type:application/json;charset=utf8');    $arr = array(       'status' => true,       'errMsg' => '',       'member' =>array(           array(               'name' => '李',               'gender' => '男'           ),           array(               'name' => '赵',               'gender' => '女'           )       )   ); echo json_encode($arr, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);

输出:

{     "status": true,     "errMsg": "",     "member": [         {             "name": "李",             "gender": "男"         },         {             "name": "赵",             "gender": "女"         }     ] }

以上就是php JSON数据格式化(美化)的方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 美化
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:非常实用的PHP常用函数汇总-加密解密、字符串操作、文件操作、SQL注入等函数

相关资讯