Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON字符串化和解码JS/PHP_Javascript - Fatal编程技术网

Javascript JSON字符串化和解码JS/PHP

Javascript JSON字符串化和解码JS/PHP,javascript,Javascript,我在PHP中发送对象时遇到问题。在将对象发送到PHP文件之前,我将其字符串化 PHP文件然后使用json_解码。但是解码显示一个空白变量 i console.log中的对象将此显示为其结构: 然后将其发送到PHP,并带有以下内容: console.log(my_Obj); var as = JSON.stringify(my_Obj); call_data('add.php?&as='+as, nxtFunc); 现在在PHP文件中,我有一

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

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

i 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;

请注意,打印内容没有显示任何内容。我应该不使用stringify吗?

这是因为
我的对象是数组而不是对象

试试这个:

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


您还需要在字符串化之前清理数组,即清除所有空/未定义的索引。检查这个答案:

为什么Chrome说<代码>(2:对象)< /代码>我认为它是一个由数组组成的对象?它是这样说的,因为它是一个数组,只有一个元素,索引是2,值是JS对象。例如,为什么不允许这样做:
[2:Object]2:Object->8:Array[11]->6:Array[0]长度:0
清除空数组元素将取决于预期的结构。如果php中需要特定的索引,则会导致问题。php会不满意
6:Array[0]length:0
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,[]]}]
var as = JSON.stringify({data: my_Obj});