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

JCa*_*Cam 4 php mysql jquery json google-maps-api-3

我正在尝试从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(); 
Run Code Online (Sandbox Code Playgroud)

它输出这个

[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}][]
Run Code Online (Sandbox Code Playgroud)

但我想要这个

[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}]
Run Code Online (Sandbox Code Playgroud)

一旦我得到结果,我需要将对象传递给jQuery插件函数,如果这有任何区别

$.getJSON('myJsonURL, function(myMarkers){
  $("#map").goMap({
    markers: myMarkers
  });
});
Run Code Online (Sandbox Code Playgroud)

谢谢

Rab*_*ire 23

我想这样做的正确方法是:

$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();
Run Code Online (Sandbox Code Playgroud)


cri*_*ian 7

你手动输出你的json然后你在空数组()上调用json_encode - $ json

json_encode()输出[]你传递一个空数组,所以你的最后一个[]来自这里 编辑:更多关于json_encode json_encode php manual
$jsonstring = json_encode($json);
echo $jsonstring;


Que*_*tin 5

首先定义一个数组.

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

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

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