打印输出json格式化数据,缩进处理 [ 技术分享 ]
public function printJson($array)
{
var_export($this->jsonFormat(json_encode(json_decode($array, true), JSON_UNESCAPED_UNICODE)));
}
function jsonFormat($data, $indent = null)
{
// 缩进处理
$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;
}
共 0 条回复
没有找到数据。
cleargo 北京
注册时间:2016-12-05
最后登录:2024-11-11
在线时长:53小时29分
最后登录:2024-11-11
在线时长:53小时29分
- 粉丝33
- 金钱21705
- 威望30
- 积分22535