Я пытаюсь создать объект json из результатов MySQL, но не получить результат, который мне нужен.
Вот PHP
$json = array(); $result = mysqli_query ($connection, $query); echo '['; while($row = mysqli_fetch_array ($result)) { echo '{'; echo '"latitude":"'.$row['lat'].'",'; echo '"longitude":"'.$row['lng'].'",'; echo '"icon":'.'"./images/'.$row['busColor'].'.png"'; echo '}'; } echo ']'; $jsonstring = json_encode($json); echo $jsonstring; die();
Он выводит это
[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}][]
Но я хочу этого
[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}]
как только я получу результат, мне нужно передать объект в функцию плагина jQuery, если это имеет значение
$.getJSON('myJsonURL, function(myMarkers){ $("#map").goMap({ markers: myMarkers }); });
благодаря
Я предполагаю, что правильный способ сделать это:
$json = array(); $result = mysqli_query ($connection, $query); while($row = mysqli_fetch_array ($result)) { $bus = array( 'latitude' => $row['lat'], 'longitude' => $row['lng'], 'icon' => './images/' . $row['busColor'] . '.png' ); array_push($json, $bus); } $jsonstring = json_encode($json); echo $jsonstring; die();
вы выводите свой json вручную, а затем вы вызываете json_encode на пустой массив () – $ json
json_encode () выдает [], вы передаете пустой массив, чтобы ваш последний [] появился здесь.
$jsonstring = json_encode($json);
echo $jsonstring;
Редактировать: Подробнее о json_encode json_encode php manual
Вы начинаете с определения массива.
Затем вы создаете несколько JSON вручную.
Затем вы преобразовываете массив в JSON и выводите его.
Замените все операторы эха в и на краю цикла while с кодом для создания ассоциативного массива, содержащего данные, а затем вставьте его в $ json.