你好我有简单的问题。我从数据库中获取了一些数据,json编码并通过PHP脚本从AJAX发送到html文件。我想JSON解析那些数据。数据如下所示:
在这样的PHP文件中:
$profesors = array
(
'id' => ($id),
'name' => ($profesor)
);
当我尝试JSON使用JSON.parse()命令解析它时,我得到“意外令牌{”。有没有人有什么建议怎么办?此外,如果它更容易实现我的目标,我可以使用一些其他数据类型而不是我使用的数组,如果有人知道更好的方式......
修改
我生成2d数组的PHP代码
<?php
$var=$_POST["oblast"];
$connection = mysql_connect('localhost','root','pass');
if (!$connection) {die("not successfull" . mysql_error());}
$result = mysql_query('set character set utf8', $connection);
$result = mysql_query('set names utf8', $connection);
$db_select = mysql_select_db("fakultet",$connection);
$brojac=0;
$profesor="";
//$data = array(array());
$queryData = mysql_query("SELECT * FROM predmet WHERE idpred = '$var'");
while($result1 = mysql_fetch_array($queryData))
{
$prof=$result1['idprof'];
$queryData1 = mysql_query("SELECT * FROM profesori WHERE idprof = '$prof'");
while($result2 = mysql_fetch_array($queryData1))
{
$id=$result2['idprof'];
$profesor=$result2['ime']." ".$result2['prezime'];
$profesors = array
(
'id' => ($id),
'name' => ($profesor)
);
echo json_encode($profesors);
}
//echo($result1['idprof']);
//$data[]=$result['idprof'];
}
//echo "$data";
?>
答案 0 :(得分:1)
意外的标记是第二个开口大括号。它期待一个对象,因为没有数组括号。要么您的回答如下所示:
[{
"id" : "1",
"name" : "Ivan Nikolaj"
},
{
"id" : "2",
"name" : "Zdravko Topic"
}]
或者这个:
{
"id" : "1",
"name" : "Ivan Nikolaj"
}
甚至更好,这个:
{
"status" : 200,
"response" : [
{
"id" : 1,
"name" : "Ivan Nikolaj"
},
{
"id" : 2,
"name" : "Zdravko Topic"
}
]
}
答案 1 :(得分:1)
您正在<{1}}循环中执行echo json_encode($profesors);
。不要这样做。您只应该拨打while
一次。
尝试这样的事情:
json_encode