Javascript 将GoogleMap字符串解析为JS数组
我开发了一个谷歌地图功能,在这个功能中,根据传递的数据随时绘制谷歌地图 例如:Javascript 将GoogleMap字符串解析为JS数组,javascript,php,jquery,ajax,google-maps,Javascript,Php,Jquery,Ajax,Google Maps,我开发了一个谷歌地图功能,在这个功能中,根据传递的数据随时绘制谷歌地图 例如: function DrawMap(data){ //code to draw google map } 数据以以下格式传递 ['Bondi Beach', -33.890542, 151.274856], 但数据来自php 所以默认情况下,我发送的数据如下 var defaultLocation = [ <?php foreach ($db_data as $mvalue) {
function DrawMap(data){
//code to draw google map
}
数据以以下格式传递
['Bondi Beach', -33.890542, 151.274856],
但数据来自php
所以默认情况下,我发送的数据如下
var defaultLocation = [
<?php
foreach ($db_data as $mvalue) {
echo "[ '".$mvalue['vTripStatus']."',".$mvalue['vLatitude'].",".$mvalue['vLongitude']." ],";
}
?>
];
所以谷歌地图不接受这种格式,所以它不会加载地图
我也尝试了$.parseJSON和JSON.parse()
那么我怎样才能像这样转换它呢
看起来PHP输出的值是字符串。尝试:
var defaultLocation = JSON.parse(`
<?php
$arr = [];
foreach ($db_data as $mvalue) {
$arr[] = [ $mvalue['vTripStatus'], $mvalue['vLatitude'], $mvalue['vLongitude'] ];
}
echo json_encode($arr);
?>
`);
var defaultLocation=JSON.parse(`
`);
好的,我看了
问题是单引号和一个额外的逗号
[
[ 'Active',23.0123022,72.5033961 ],
[ 'Arrived',23.0088,72.4823 ],
[ 'On Going Trip',22.9938,72.4713 ],
]
它在解析json数据时会导致问题。
因此,如果在json数据中使用字符串,则必须强制使用双引号(“)而不是单引号(“)
json数据中也不允许使用额外的单词和符号。转换对象数组并向ajax发送响应。当在数组
逗号
中打印导致该问题的最后一个元素时,不需要它。是的,单引号也会导致问题看起来我忘了将php代码放入字符串中。代码现在应该可以工作了
[
[ 'Active',23.0123022,72.5033961 ],
[ 'Arrived',23.0088,72.4823 ],
[ 'On Going Trip',22.9938,72.4713 ],
]