Por que json_decode ($ data, TRUE) está convertendo uma matriz em uma string?
Código JavaScript:
$.ajax({
type: "POST",
url: "postTestingResult.php",
data: {data: JSON.stringify(sendData)},
dataType: "json",
success: ajaxSuccess,
error: ajaxError
});
Código PHP
$data = json_decode($_POST['data'], TRUE);
Quando POSTAR uma estrutura de dados complexa para o servidor, a matriz mais externa está se tornando uma sequência. Por exemplo, o objeto JavaScript pode ser
var data = {"apps": [[1,2,3], [4,5,6]]}
Usando JSON.stringify (data), isso se torna
"{"apps": "[[1,2,3], [4,5,6]]"}" //As seen via console.log(data) in Chrome console
Mas depois de executar o json_decode ($ _ POST ['data'], TRUE), torna-se
array('apps' => '[[1,2,3], [4,5,6]]') //As seen via var_export($data, TRUE)
Oque esta acontecendo aqui? Por que a matriz está sendo convertida em uma string? Para ver o objeto JSON completo e o objeto PHP completoconfira esta pasta com os dois.
Qualquer ajuda é muito apreciada, obrigado.
UPDATE: Resposta encontrada Eu encontrei o principal culpado. Também estou usando Prototype.js e ele estava adicionando um método toJSON aos protótipos de objetos.Confira esta questão SO para obter detalhes.