显示格式正确的 JSON


displaying right formatted json

我正在尝试在我的网站中显示jsonJSON的格式应该正确,但它是换行的。

目前是:

{"

ids":[{"id":"52","name":"''u0633''u0633''u064a john",":" ''u0635''u0628''u064a","国籍":"德语"},{"id":"50","姓名":"''u0645''u062d''u0645''u062f 斯贾贾 ha",":"''u0630''u0643''u0631","国籍":"''u0628''u062d''u0631''u0627''u0646''u064a"}],"成功":1}

虽然应该是这样的:

{
    "success": 1,
    "product": [
        {
            "pid": "1",
            "name": "iPHone 4S",
            "price": "300.00",
            "description": "iPhone 4S white",
            "created_at": "2012-04-29 01:41:42",
            "updated_at": "0000-00-00 00:00:00"
        }
    ]
}

这是我的PHP代码:

<html>
<head>
<title>Send and Rec data to Android Device</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>

<body>
<?php
/*
 * Following code will list all the ids
 */
 $db = mysql_connect($dbhost, $dbuser, $dbpass);
  mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $db);
  mysql_set_charset('utf8', $db); 
  $charset = mysql_client_encoding($db);
// array for JSON response
$response = array();
// include db connect class 
// connecting to db
// get all ids from ids table
$result = mysql_query("SELECT * FROM people") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
    // looping through all results
    // ids node
    $response["ids"] = array();
    while ($row = mysql_fetch_array($result)) {
        // temp user array
        $idd = array();
        $idd["id"] = $row["id"];
        $idd["name"] = $row["name"];
        $idd["sex"] = $row["sex"];
        $idd["nationality"] = $row["nationality"];
        // push single idd into final response array
        array_push($response["ids"], $idd);
    }
    // success
    $response["success"] = 1;
    // echoing JSON response
    echo json_encode($response);
} else {
    // no ids found
    $response["success"] = 0;
    $response["message"] = "No ids found";
    // echo no users JSON
    echo json_encode($response);
}
?>
</body>

</html>

在 php 5.4.0+ 中,您有JSON_PRETTY_PRINT选项来打印带有缩进的 JSON(易于阅读的格式)。

echo json_encode($json, JSON_PRETTY_PRINT);

参考: http://www.php.net/manual/en/function.json-encode.php#refsect1-function.json-encode-changelog

但是您必须在文本区域或pre标签中打印它们。

echo '<pre>'.json_encode($json, JSON_PRETTY_PRINT).'</pre>';
//or
echo '<textarea cols="50" rows="20">'.json_encode($json, JSON_PRETTY_PRINT).'</textarea>';