json 格式化输出

来源:互联网 发布:世界时钟哪些软件好 编辑:程序博客网 时间:2024/06/05 15:57
function indent ($json) {    $result = '';    $pos = 0;    $strLen = strlen($json);    $indentStr = '';    $newLine = "<br/>";    $prevChar = '';    $outOfQuotes = true;    for ($i=0; $i<=$strLen; $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<$pos; $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 < $pos; $j++) {                $result .= $indentStr;            }        }        $prevChar = $char;    }    return $result;}