最新文章专题视频专题问答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
当前位置: 首页 - 科技 - 知识百科 - 正文

phpJSON数据格式化(美化)的方法

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

phpJSON数据格式化(美化)的方法

phpJSON数据格式化(美化)的方法:一、使用 json_encode 输出<php header('content-type:application/json;charset=utf8'); $arr = array( 'status' => true, 'errMsg' => '', 'memb
推荐度:
导读phpJSON数据格式化(美化)的方法:一、使用 json_encode 输出<php header('content-type:application/json;charset=utf8'); $arr = array( 'status' => true, 'errMsg' => '', 'memb



一、使用 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": "女"
 }
 ]
}

文档

phpJSON数据格式化(美化)的方法

phpJSON数据格式化(美化)的方法:一、使用 json_encode 输出<php header('content-type:application/json;charset=utf8'); $arr = array( 'status' => true, 'errMsg' => '', 'memb
推荐度:
标签: 方法 美化 php
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top