【发布时间】:2015-02-12 07:01:08
【问题描述】:
我正在尝试使用嵌套节点创建 JSON 响应。第一个节点的数据来自名为“category”的表,第二个节点的数据来自另一个名为“tracks”的表。 “tracks”表中的每个“track”都通过“category_id”与“category”表连接。到目前为止,我已经创建了这个响应,
{
"category": [
{
"category_id": "1",
"category_name": "Editor's Choice ",
"cover_url": "http://www.example.com"
},
{
"category_id": "2",
"category_name": "New Releases",
"cover_url": "http://www.example.com"
}
],
"success": 1
}
现在我想要另一个子节点“track_list”,其数据将来自“category”数组中的“tracks”表。最终的 JSON 大概会是这个样子,
{
"category": [
{
"category_id": "1",
"category_name": "Editor's Choice ",
"cover_url": "http://www.example.com",
"track_list": [
{
"track_id": "",
"track_name": ""
},
{
"track_id": "",
"track_name": ""
}
]
},
{
"category_id": "2",
"category_name": "New Releases",
"cover_url": "http://www.example.com",
"track_list": [
{
"track_id": "",
"track_name": ""
},
{
"track_id": "",
"track_name": ""
}
]
}
],
"success": 1
}
这是我已经尝试过的代码,
// array for JSON response
$response = array();
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// get all category data name from table
$result = mysql_query("SELECT *FROM category") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// category node
$response["category"] = array();
while ($row = mysql_fetch_array($result)) {
// temp category array
$category = array();
$category["category_id"] = $row["category_id"];
$category["category_name"] = $row["category_name"];
$category["cover_url"] = $row["cover_url"];
// push single category into final response array
array_push($response["category"], $category);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response, JSON_PRETTY_PRINT);
} else {
// no category found
$response["success"] = 0;
$response["message"] = "No result found";
// echo no users JSON
echo json_encode($response, JSON_PRETTY_PRINT);
}
我不知道嵌套的 JSON,因为我是 PHP 的新手。任何形式的帮助都将不胜感激。
【问题讨论】: