使用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中。