Разобрать строку Google Map в массив JS - PullRequest
0 голосов
/ 15 декабря 2018

Я разработал функцию карты Google, в которой при вызове карта Google рисуется в соответствии с данными, переданными

Пример:

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 () Так как я могу преобразовать его как

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Хорошо, я прочитал это Можно ли использовать запятую в объекте JSON?

Проблема заключается в одинарной кавычке и дополнительной запятой в

[
  [ 'Active',23.0123022,72.5033961 ],
  [ 'Arrived',23.0088,72.4823 ],
  [ 'On Going Trip',22.9938,72.4713 ],
]

Это вызывает проблемы при разборе данных JSON.поэтому, если вы используете строку в данных json, вы должны обязательно использовать двойные кавычки (") вместо одинарных кавычек (")

, а также дополнительные слова и символы также не допускаются в данных json.

0 голосов
/ 15 декабря 2018

Похоже, что значения, которые выводит PHP - это строки.Попробуйте:

var defaultLocation = JSON.parse(`
    <?php
        $arr = [];
        foreach ($db_data as $mvalue) {
            $arr[] = [ $mvalue['vTripStatus'], $mvalue['vLatitude'], $mvalue['vLongitude'] ];
        }
        echo json_encode($arr);
    ?>
`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...