使用PHP json_encode()和MySQL返回一个JSON对象以传递给jQuery函数

我正在尝试从MySQL结果创建一个json对象,但没有得到我需要的结果。

这是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手册

首先定义一个数组。

然后,您手动生成一些JSON。

然后,将数组转换为JSON并输出它。

用代码替换while循环中和边缘的所有echo语句,以生成包含数据的关联数组,然后将其插入到$ json中。