读取PHP在Javascript中返回的JSON
我想从数据库中选择一些内容并将其返回到javascript。数据库返回了几行。我用JSON尝试了这个方法,如果我打印出来,也会得到一个结果。但是如果我想转换JSON字符串,下面总是有错误消息。在JSON.parse中,我假设填充数组时可能出错?提前谢谢各位 Javascript: $.ajax{ url://选择_firsttracks.php, 类型:post,, 成功:functionresultset{ $erroroutput.htmlresultset; var arr=JSON.parse{+resultset+};/->未捕获的语法错误:意外的标记{ }, 错误:functionoutput{ $erroroutput.htmlfatal从数据库获取曲目时出错:+output; }读取PHP在Javascript中返回的JSON,javascript,php,jquery,arrays,json,Javascript,Php,Jquery,Arrays,Json,我想从数据库中选择一些内容并将其返回到javascript。数据库返回了几行。我用JSON尝试了这个方法,如果我打印出来,也会得到一个结果。但是如果我想转换JSON字符串,下面总是有错误消息。在JSON.parse中,我假设填充数组时可能出错?提前谢谢各位 Javascript: $.ajax{ url://选择_firsttracks.php, 类型:post,, 成功:functionresultset{ $erroroutput.htmlresultset; var arr=JSON.p
}在收到的JSON前后添加大括号,如下所示:
var arr = JSON.parse("{" + resultset + "}");
Phps json_encode本身返回完全有效的json。请在不添加大括号的情况下进行尝试:
var arr = JSON.parse(resultset);
在while之后回显json
$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);
和变化:
var arr = JSON.parse(resultset);
生成的json字符串无效,您可以使用
修改php代码以在循环外进行回音:
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);
在javascript中,只需将输出用作javascript对象
success: function(resultset) {
console.log(resultset)
resultset.each(function(index,element){ console.log(index,element )})
},
您的resultset已经是一个有效的JSON;添加大括号会使它变得不好。不需要在JSON.parse{+resultset+};代码:JSON.parseresultset;或在ajax配置中添加数据类型:“JSON”