php JSON数据格式化(美化)的方法
生活随笔
收集整理的這篇文章主要介紹了
php JSON数据格式化(美化)的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、使用 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數據格式化(美化)的方法的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的php JSON数据格式化(美化)的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任天堂 Switch 成为法国有史以来销
- 下一篇: gradle之gradlew最全指令攻略