[英]How to ouput JSON in javascript?
我正在尝试从php查询将json对象的结果打印到javascript中。
因此,基本上查询结果如下所示:
{"points":
[{"lat":40.766696929932,"long":-73.990615844727},
{"lat":40.688514709473,"long":-73.96475982666},
{"lat":40.714504241943,"long":-74.005630493164},
{"lat":40.704719543457,"long":-74.009262084961},
{"lat":40.693260192871,"long":-73.968894958496},
{"lat":40.760955810547,"long":-73.967247009277},
]}
当我尝试获取包含json对象的php变量(使用AJAX)时,我得到:
VM62:1未捕获的SyntaxError:JSON中位置1处的意外令牌o
我尝试谷歌搜索以查看错误与我的代码的关系,但是我仍然不明白。
有人可以向我解释如何在JavaScript中获取json吗?
<?php
$connect = pg_connect("host=127.0.0.1 dbname=datab user=thomas password=iamtom") or die("Could not connect: ");
$result = pg_query($connect,"SELECT geometry FROM table");
if (!$result){
echo '{"error":"no results"}';
}
$points= array();
while($row = pg_fetch_array($result)){
$coordinate = json_decode($row['geometry'])->coordinates;
$p = new stdClass;
$p->lat = $c_2[0];
$p->long = $c_1[1];
array_push($points, $p);
}
$output = new stdClass;
$output->points = $points;
echo json_encode($output);
pg_close($connect);
?>
这是我的HTML / JS:
<html>
<head>
<title>Simple Map</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$.ajax({
type: "GET",
dataType: "JSON",
url: "dab.php",
data: {
sataVariable: "here is some data send with GET method"
},
success: function(data) {
var j = JSON.parse(data);
document.writeln(data); // attempting to take the coordinates and store it in a variable
},
error: function(data) {
console.log(data);
}
});
</script>
</head>
<body>
</body>
</html>
因为您要在对jQuery.ajax()
的调用中提供dataType: "JSON"
所以将从AJAX调用中检索到的数据自动从JSON解析为JavaScript对象(尽管我将"JSON"
切换为"json"
匹配文档):
"json"
:将响应评估为JSON并返回一个JavaScript对象。
不要在成功处理程序中使用JSON.parse()
再次手动解析响应; 只是直接处理data
。
现在,您已经将数据包含在名为data
的JavaScript对象中,可以与之交互,例如
for (var i = 0; i < data.points.length; i++) {
console.log(data.points[i].lat, data.points[i].long);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.