为什么在JSON.stringify之后的json中为NULL?

时间:2013-09-21 05:27:32

标签: php jquery json

php 5.4 fastcgi jquery 1.10

Jquery代码:

$.ajax({
          type: "POST",
          url: "",
          dataType: "json",
          data: { json: JSON.stringify({test: 'teste'}) }
        }).done(function(msg) {
              var msg = $.parseJSON(msg);
              alert(msg);
        });

PHP代码:

$json = $_POST['json'];
$info = json_decode($json, true);
var_dump($info);

结果:

array(1) {
  ["test"]=>
  string(5) "teste"
}
null

我不知道为什么这个 null apper以及如何删除它。因为如果我尝试使用:

$i = info['test'];
echo $i;

我会接受: 的 testenull

2 个答案:

答案 0 :(得分:2)

好像您的 JSON 数据就是问题。

PHP 中的

json_decode() 将JSON编码的字符串作为输入并将其转换为PHP变量。

它像这样工作

<?php
$json = '{"test": 12345}';
$obj = json_decode($json);
print $obj->{'test'}; // 12345
?>

答案 1 :(得分:0)

因为你设置的dataType是JSON所以在PHP中,响应也必须是JSON格式。

示例:echo'{“i”:'。$ i。 '}';