【发布时间】:2012-11-14 22:30:56
【问题描述】:
我正在尝试使用 json 从 php 文件中检索 javascript 文件中的数据。
$items = array();
while($r = mysql_fetch_array($result)) {
$rows = array(
"id_locale" => $r['id_locale'],
"latitudine" => $r['lat'],
"longitudine" => $r['lng']
);
array_push($items, array("item" => $rows));
}
ECHO json_encode($items);
在 javascript 文件中,我尝试使用 ajax 调用来恢复数据:
$.ajax({
type:"POST",
url:"Locali.php",
success:function(data){
alert("1");
//var obj = jQuery.parseJSON(idata);
var json = JSON.parse(data);
alert("2");
for (var i=0; i<json.length; i++) {
point = new google.maps.LatLng(json[i].item.latitudine,json[i].item.longitudine);
alert(point);
}
}
})
第一个警报被打印,后者没有,它给我错误:Unexpected token <....>
有人知道我哪里错了吗?
我也尝试使用 jquery 恢复数据,但没有积极的结果。
【问题讨论】:
-
不要在
success函数中使用JSON.parse。给你的$.ajax属性dataType: 'json'然后console.logJSON 响应,看看你是否得到一个空值或具有属性的对象。如果你得到一个空值,那么你的 PHP 脚本中的数据有问题。 -
也可以尝试将
exit();放在json_encode()函数之后 -
我的 JSON 数据是: [{"item":{"id_locale":"50","latitudine":"44.4794995","longitudine":"11.364192099999968"}}] 在 JSON lint json文件没问题
-
添加 exit(),不工作,现在我尝试使用 console.log
-
如果您在 jQuery AJAX 调用中指定
dataType: 'json',那么在您的 PHP 脚本中执行return $items;而不是echo json_encode($items);就足够了。
标签: javascript php json parsing