0

无论如何都知道 json 编码完全像这样https://graph.facebook.com/4像 facebook graph 一样排列?

因为当我简单地写 json 时 php echo json_encode 这会出来{"id":"4","name":"Mark Zuckerberg","first_name":"Mark","last_name":"Zuckerberg","link":"https://www.facebook.com/zuck","username":"zuck","gender":"male","locale":"en_US"}

只是一条直线... :D 有人知道吗?:D 请分享

4

2 回答 2

1

对于 PHP >=5.4.0,您可以在使用 json_encode 时使用 JSON_PRETTY_PRINT 选项

对于 PHP < 5.4.0,您可以使用来自 PHP 手册页面http://www.php.net/manual/en/function.json-encode.php#80339中用户贡献注释的代码

<?php 
// Pretty print some JSON 
function json_format($json) 
{ 
    $tab = "  "; 
    $new_json = ""; 
    $indent_level = 0; 
    $in_string = false; 

    $json_obj = json_decode($json); 

    if($json_obj === false) 
        return false; 

    $json = json_encode($json_obj); 
    $len = strlen($json); 

    for($c = 0; $c < $len; $c++) 
    { 
        $char = $json[$c]; 
        switch($char) 
        { 
            case '{': 
            case '[': 
                if(!$in_string) 
                { 
                    $new_json .= $char . "\n" . str_repeat($tab, $indent_level+1); 
                    $indent_level++; 
                } 
                else 
                { 
                    $new_json .= $char; 
                } 
                break; 
            case '}': 
            case ']': 
                if(!$in_string) 
                { 
                    $indent_level--; 
                    $new_json .= "\n" . str_repeat($tab, $indent_level) . $char; 
                } 
                else 
                { 
                    $new_json .= $char; 
                } 
                break; 
            case ',': 
                if(!$in_string) 
                { 
                    $new_json .= ",\n" . str_repeat($tab, $indent_level); 
                } 
                else 
                { 
                    $new_json .= $char; 
                } 
                break; 
            case ':': 
                if(!$in_string) 
                { 
                    $new_json .= ": "; 
                } 
                else 
                { 
                    $new_json .= $char; 
                } 
                break; 
            case '"': 
                if($c > 0 && $json[$c-1] != '\\') 
                { 
                    $in_string = !$in_string; 
                } 
            default: 
                $new_json .= $char; 
                break;                    
        } 
    } 

    return $new_json; 
} 
?>
于 2012-04-29T11:47:10.003 回答
0

如果您使用的是 FireFox,这可能会有所帮助!

http://jsonview.com/

或者只是使用这个...

http://jsbeautifier.org/

希望这些帮助!

于 2012-04-29T11:40:51.740 回答