【发布时间】:2016-02-26 14:47:43
【问题描述】:
我想从数据库中选择一些内容并将其返回给 javascript。数据库返回了几行。我用 JSON 进行了尝试,如果我打印出来,也得到了结果。但是如果我想转换 JSON 字符串,总是有下面的错误信息。 (在 JSON.parse 中)所以,我假设在填充数组时可能会出错?提前谢谢各位!
Javascript:
$.ajax({
url: "./select_firsttracks.php",
type: "post",
success: function(resultset) {
$("#erroroutput").html(resultset);
var arr = JSON.parse("{" + resultset + "}"); // --> "Uncaught SyntaxError: Unexpected token {"
},
error: function(output) {
$("#erroroutput").html("fatal error while fetching tracks from db: " + output);
}
});
PHP:
$storage = array();
while($row = $result->fetch_array())
{
$storage[] =
array
(
"id" => $row["id"],
"trackname" => $row["trackname"],
"artist" => $row["artist"],
"genre" => $row["genre"],
"url" => $row["url"],
"musicovideo" => $row["musicovideo"]
);
echo json_encode($storage);
}
控制台输出:
[{"id":"1","trackname":"yes","artist":"Lady Gaga","genre":"Pop","url":"ftp:\/development","musicovideo":"1"}][{"id":"1","trackname":"yes","artist":"Lady Gaga","genre":"Pop","url":"ftp:\/development","musicovideo":"1"},{"id":"2","trackname":"no","artist":"Prinz Pi","genre":"Rap","url":"ftp:\/development","musicovideo":"1"}]
【问题讨论】:
-
您的结果集已经是有效的 JSON;添加大括号会变得很糟糕。
-
不需要在
JSON.parse("{" + resultset + "}");中连接{和}代码:JSON.parse(resultset);或在ajax 配置中添加dataType: 'json',
标签: javascript php jquery arrays json