JSON_decode二维对象数组?

时间:2012-06-03 10:54:01

标签: php javascript ajax post

我有一个二维的对象数组,如下所示:

function test(n){
  this.id = n;
}

var testArray= new Array(2);
for(i = 0; i < testArray.length; i++){
  testArray[i] = new Array(2);
  for(j = 0; j < testArray[i].length; j++){
    testArray[i][j] = new test((2*i)+j);
  }
}

然后我使用AJAX将其字符串化为post:

var data = {testA: {testB: testArray[0], testC: testArray[1]}}
var text = JSON.stringify(data);

我执行jquery AJAX调用后:

$.post("test.php",text,function(data){
  alert(data);
});

我无法弄清楚如何在PHP端解码和使用这个对象,到目前为止我尝试过这样的事情:

<?php 

$data = json_decode($_POST);
if($data == null){
    echo "fail";
} else {
    echo $data; 
} 

?>

但我得到一个错误,表示它需要一个字符串,而我正在传递一个数组。我也试过像

这样的东西
$data = json_decode($_POST['testA']);

然后错误没有出现,而是总是输出“失败”。

有没有人知道我需要在PHP端做什么才能访问数据?

1 个答案:

答案 0 :(得分:2)

为什么要对它运行stringify?如果您只是这样发送:

$.post("test.php", data, function(data) {

您应该能够像这样检索它:

$data = $_POST['testA'];