JSON.parse неожиданный многомерный массив токенов

Здравствуйте, у меня есть простой вопрос. У меня есть некоторые данные, извлеченные из базы данных и JSON в кодировке и отправлены в HTML-файл через AJAX из сценария PHP. Я хочу JSON разобрать эти данные. Данные выглядят так:

введите описание изображения здесь

И в PHP-файле так:

$profesors = array
(
'id' => ($id),
'name' => ($profesor)
);

Когда я пытаюсь проанализировать JSON с помощью команды JSON.parse (), я получаю «неожиданный токен {». У кого-нибудь есть предложения, что делать? Также, если мне будет легче достичь своей цели, я могу использовать другой тип данных, чем массив, который я использую, если кто-то знает лучший способ …

РЕДАКТИРОВАТЬ

мой код PHP, который генерирует 2d массив

<?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

Решение

Ты делаешь echo json_encode($profesors); внутри ваш while петля. Не делай этого. Вы должны только когда-либо звонить json_encode один раз.

Попробуйте что-то вроде этого:

$profesors = array();

while($result2 = mysql_fetch_array($queryData1))
{
$id=$result2['idprof'];
$profesor=$result2['ime']." ".$result2['prezime'];
$profesors[] = array(
'id' => $id,
'name' => $profesor
);
}

echo json_encode($profesors);
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

По вопросам рекламы [email protected]