Javascript JSON字符串化和解码JS/PHP
我在PHP中发送对象时遇到问题。在将对象发送到PHP文件之前,我将其字符串化 PHP文件然后使用json_解码。但是解码显示一个空白变量 i console.log中的对象将此显示为其结构: 然后将其发送到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文件中,我有一
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});