我开发了一种谷歌地图功能,可以在调用时根据传递的数据绘制谷歌地图
示例:
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']." ],";
}
?>
];
但是我单击按钮后发生了一个事件,该事件执行了ajax调用,因此在ajax中,数据以以下格式作为字符串返回(当我console.log()时)
[[ 'Active',23.0123022,72.5033961 ],[ 'Arrived',23.0088,72.4823 ],[ 'On Going Trip',22.9938,72.4713 ], ]
因此Google地图不接受此格式,因此它不会加载地图。
我也尝试了$ .parseJSON和JSON.parse() 那么我如何将其转换为
答案 0 :(得分:0)
看起来PHP输出的值是字符串。试试:
var defaultLocation = JSON.parse(`
<?php
$arr = [];
foreach ($db_data as $mvalue) {
$arr[] = [ $mvalue['vTripStatus'], $mvalue['vLatitude'], $mvalue['vLongitude'] ];
}
echo json_encode($arr);
?>
`);
答案 1 :(得分:0)
好,我读了这个Can you use a trailing comma in a JSON object?
问题是单引号和一个逗号分隔
[
[ 'Active',23.0123022,72.5033961 ],
[ 'Arrived',23.0088,72.4823 ],
[ 'On Going Trip',22.9938,72.4713 ],
]
在解析json数据时会导致问题。 因此,如果您在json数据中使用字符串,则必须强制使用双引号(“)而不是单引号(”)
以及json数据中也不允许使用多余的单词和符号。