0

我在 PHP 中发送对象时遇到问题。在将对象发送到 PHP 文件之前,我将其字符串化。

然后 PHP 文件使用 json_decode。但解码显示一个空白变量。

我 console.log 的对象显示为它的结构:

在此处输入图像描述

然后将其发送到 PHP:

    console.log(my_Obj);
    var as = JSON.stringify(my_Obj);        
    call_data('add.php?&as='+as, nxtFunc);  

现在在 PHP 文件中我有这个处理这种情况:

    $path = json_decode($_GET['as']);
    echo $_GET['as'].'<br/>';
    print_r($path);
    die;

结果是:

[null,null,{\"8\":[null,null,null,null,null,null,[],[],[],[],[]],\"9\":
[null,null,null,null,null,null,null,null,null,null,[]],\"10\":
[null,null,null,null,null,null,null,null,null,null,[],[]],\"11\":
[null,null,null,null,null,null,null,null,null,null,null,[]]}]   
<br/>

我在 Chrome 中的 XHR 请求网址显示:

add.php?as=[null,null,{%228%22:[null,null,null,null,null,null,[],[],[],[],[]],%229%22:[null,null,null,null,null,null,null,null,null,null,[]],%2210%22:[null,null,null,null,null,null,null,null,null,null,[],[]],%2211%22:[null,null,null,null,null,null,null,null,null,null,null,[]]}]

注意 print_r 什么也没显示。我不应该使用 stringify 吗?

4

1 回答 1

1

那是因为my_Obj它是一个数组而不是一个对象。

试试这个:

var as = JSON.stringify({data: my_Obj});

笔记:

您还需要在字符串化之前清理数组 - 即清除所有空/未定义的索引。检查这个答案:https ://stackoverflow.com/a/281335/921204

于 2012-12-30T03:04:32.020 回答