我有一个经过测试且运行良好的代码块,当json文件的格式如下时,它会读取json文件并将信息放入表中:
[
{
"title": "Title One",
"hits": 99,
"type": "Type 1",
"id": "001"
},
{
"title": "Title Two",
"hits": 109,
"type": "Type 2",
"id": "002"
},
{
"title": "Title Three",
"hits": 119,
"type": "Type 3",
"id": "003"
}
]
这是一个PHP对象数组。问题是,我在从PHP动态生成这个json时遇到了问题——上面的内容并没有生成——它只是前端的一个测试文件。我得到的最好的方法是生成一个数组数组,它不是由我的表读取的。我的PHP和相关部分的结尾如下:
do {
$model[] = array(
'plays' => $row_GetTotalItems['Rows'],
'title' => $row_GetTotalItems['video_title'],
'id' => $row_GetTotalItems['videoID']
);
} while ($row_GetTotalItems = mysql_fetch_assoc($GetTotalItems));
}
}
header("Content-type: application/json");
json_encode($model);
print_r($model);
?>
关于如何正确生成json文件,以便在我的表查找它时对其进行格式化,有什么想法吗?
离开mysql_*
,转到MySQLi或PDO,但对于这个问题,请获取对象。您还需要将JSON编码的字符串分配给某个东西,或者只分配给echo
。其次,不要使用do
,即使第一次或最后一次没有提取行:
while ($row_GetTotalItems = mysql_fetch_object($GetTotalItems)) {
$model[] = $row_GetTotalItems;
}
header("Content-type: application/json");
echo json_encode($model);
为了将来参考,您可以创建一个数组并强制转换为对象:
$model[] = (object)array('plays' => $row_GetTotalItems['Rows'],
'title' => $row_GetTotalItems['video_title'],
'id' => $row_GetTotalItems['videoID']
);