Использование JavaScript для доступа к массиву JSON из PHP

Я пытаюсь понять, как мой PHP-скрипт может передать массив в код JavaScript. Используя следующий PHP, я передаю массив:

$c = array(3,2,7); echo json_encode($c); 

Мой JavaScript выглядит следующим образом:

  $.post("getLatLong.php", { latitude: 500000}, function(data) { arrayData = data document.write(arrayData) document.write(arrayData[0]); document.write(arrayData[0]); document.write(arrayData[0]); }); </script> 

Что напечатано на экране

 [3,2,7][3, 

Я пытаюсь понять, как работает json_encode – я думал, что смогу передать массив переменной, а затем получить к ней, как обычный массив JavaScript, но он рассматривает мой массив как одну большую текстовую строку. Как убедиться, что он читает его как массив?

Related of "Использование JavaScript для доступа к массиву JSON из PHP"

Передайте аргумент dataType в $.post :

 $.post("getLatLong.php", { latitude: 500000}, function(data){ // ... }, 'json'); 

Затем data будут правильно декодированы.

В качестве альтернативы вы также можете использовать $.parseJSON в $.parseJSON .

Объяснение JSON:

JSON – это формат обмена данными. Он определяет структуру передаваемой строки данных . json_encode принимает структуру данных PHP, такую ​​как массив или объект, и преобразует ее в JSON, то есть строку с определенным форматом.

json_encode($c) даст вам строку "[3,2,7]" .

На клиентском сайте вы получаете эту строку, но вы должны ее декодировать в соответствующие структуры данных JavaScript. Таким образом, $.parseJSON(data) предоставит вам массив JavaScript с 3 элементами (или если вы передадите «json» в качестве третьего параметра в .post() , jQuery автоматически выполняет декодирование).