Heim  >  Artikel  >  Backend-Entwicklung  >  分享一个 PHP 版的 JSON 数据格式化函数_PHP教程

分享一个 PHP 版的 JSON 数据格式化函数_PHP教程

WBOY
WBOYOriginal
2016-07-21 14:58:31841Durchsuche

今天在芒果小站看到一段代码,感觉挺不错的,于是转载过来。以下是原文。

将字符串形式的 JSON 数据格式化为缩进形式。通常使用 json_encode 转换出来的 JSON 串没有缩进,有这个方法就爽多了。
这里我默认使用了 tab 缩进,如果要改成空格,替换变量 $indentStr 即可。

/**
* Indents a flat JSON string to make it more human-readable.
* @param string $json The original JSON string to process.
* @return string Indented version of the original JSON string.
*/
function indent ($json) {

$result = '';
$pos = 0;
$strLen = strlen($json);
$indentStr = ' ';
$newLine = "\n";
$prevChar = '';
$outOfQuotes = true;

for ($i=0; $i
// Grab the next character in the string.
$char = substr($json, $i, 1);
// Are we inside a quoted string?
if ($char == '"' && $prevChar != '\\') {
$outOfQuotes = !$outOfQuotes;
// If this character is the end of an element,
// output a new line and indent the next line.
} else if(($char == '}' || $char == ']') && $outOfQuotes) {
$result .= $newLine;
$pos --;
for ($j=0; $j$result .= $indentStr;
}
}
// Add the character to the result string.
$result .= $char;
// If the last character was the beginning of an element,
// output a new line and indent the next line.
if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
$result .= $newLine;
if ($char == '{' || $char == '[') {
$pos ++;
}
for ($j = 0; $j $result .= $indentStr;
}
}
$prevChar = $char;
}

return $result;

}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/363833.htmlTechArticle今天在芒果小站看到一段代码,感觉挺不错的,于是转载过来。以下是原文。 将字符串形式的 JSON 数据格式化为缩进形式。通常使用 json...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn