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 ],
]