0

我正在尝试json在我的网站上显示。JSON应该正确格式化,但它被包装了。

目前是:

{"ids":[{"id":"52","name":"\u0633\u0633\u064a john","sex":"\u0635\u0628\u064a","国籍":"德国人"} ,{"id":"50","name":"\u0645\u062d\u0645\u062f sjajha ha","sex":"\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>
4

1 回答 1

0

在 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

但是您必须在 textarea 或 pre 标记中打印它们。像这样

echo '<pre>'.json_encode($json, JSON_PRETTY_PRINT).'</pre>';
//or
echo '<textarea cols="50" rows="20">'.json_encode($json, JSON_PRETTY_PRINT).'</textarea>';
于 2013-10-02T12:40:30.260 回答