Usando JavaScript para acessar uma matriz JSON a partir do PHP

Estou tentando entender como meu script PHP pode passar uma matriz para o meu código JavaScript. Usando o seguinte PHP, eu passo uma matriz:

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

Meu JavaScript é o seguinte:

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

O que está impresso na canvas é

 [3,2,7][3, 

Estou tentando entender como o json_encode funciona – pensei que seria capaz de passar a matriz para uma variável e, em seguida, acessá-la como uma matriz de JavaScript normal, mas ela vê minha matriz como uma seqüência de texto grande. Como garantir que ele lê isso como uma matriz?

Passe o argumento dataType para $.post :

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

Em seguida, os data serão adequadamente decodificados.

Alternativamente, você também pode usar $.parseJSON no retorno de chamada.

Explicação de JSON:

JSON é um formato de troca de dados. Especifica a estrutura da cadeia de dados que é transmitida. json_encode usa uma estrutura de dados PHP como uma matriz ou um object e a transforma em JSON, ou seja, uma string com um determinado formato.

json_encode($c) lhe dará a string "[3,2,7]" .

No site do cliente, você recebe essa string, mas você deve decodificá- la para estruturas de dados JavaScript adequadas. Então $.parseJSON(data) lhe dará uma matriz de JavaScript com 3 elementos (ou se você passar ‘json’ como terceiro parâmetro para .post() , jQuery está fazendo a decodificação automaticamente para você).