在javascript中解析json

Ric*_*ler 0 javascript php json

我加载了一个php/json文件.这是我的json文件:

echo '{';
echo '"position":[';
while($inhoud = mysql_fetch_array($result))
{
  echo '{';
  echo '"lat":"'.$inhoud['lat'].'",';
  echo '"long":"'.$inhoud['long'].'",';
  echo '}';

}

echo ']}';
Run Code Online (Sandbox Code Playgroud)

这有效.我想在我的JavaScript中加载它并像这样做:

$.getJSON('req/position.php', function(data) { 
$.each(data, function(key, val) {
    newLatLng = key;
});
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用.它加载文件,但我没有得到这些数据.我该怎么办?

谢谢,

lor*_*o-s 5

我认为你在JSON输出中有一些语法错误.

  • 输出"long"数据时,最后添加一个逗号,,但不应该,因为它"long"是对象的最后一个键.
  • 您在while循环中打印出一个对象.这些对象是数组的一部分.因此,除了最后一个,你必须,在结束后附加一个逗号}.

而且,如果我可以问,为什么你不使用json_encode()PHP函数,而不是手动构建所有的JSON字符串?有了它,您可以将所有数据构建为普通的PHP数组,然后使用JSON对其进行编码(转换).你将避免所有这些烦人的语法东西.

就试一试吧:

$data = array();
$data['position'] = array();

while($inhoud = mysql_fetch_array($result)) 
{
    $data['position'][] = array(
        "lat" => $inhoud['lat'],
        "long" => $inhoud['long']
    );
}

echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)