一、使用 json_encode 输出

<?phpheader('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 等几个常量参数。使显示中文与格式化更方便。

<?phpheader('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": "女"        }    ]}

更多相关文章

  1. PHP中的递归是什么?实现方式有哪些?
  2. 解决json_encode中文转码问题
  3. [简讯] 微软Linux子系统已经支持中文
  4. 《Effective Java中文版 第2版》读书笔记
  5. 递归就这么简单
  6. 函数和递归
  7. 迭代和函数的递归的学习
  8. jQuery 1.3 API 参考文档中文版
  9. jQuery $ajax 传中文数据到action乱码解决方法

随机推荐

  1. Android进阶(一)View体系
  2. (一)Android应用程序及组件简介
  3. 【Android实战开发】3G技术和Android发展
  4. AndroidManifest.xml 详解 (四) 之uses-p
  5. 阿里ctf-2014 android 第三题——so动态
  6. 成品app直播源码,Android自屏幕底部滑出更
  7. Android中Handler异步线程
  8. 3. Android(安卓)MultiMedia框架完全解析
  9. android 广播接受者
  10. (三)Android Context说明