PHP's json_encode and jQuery


PHP's json_encode and jQuery

我正在对页面/person/steve:进行AJAX调用

$.ajax({
  url:      '/person/steve',
  method:   'POST',
  dataType: 'json',
  success:  function(response){
    console.log(JSON.stringify(response));
  }
});

/person/steve由以下代码组成:

$person = array(
  'name'    => 'Steve',
  'twitter' => '@stevelindstrom'
);
echo json_encode(array('data' => $person));
die;

现在,在我的php中,当我使用PEARLog类记录json_encode的结果时,我得到:

{"data":{"name":"Steve","twitter":"@stevelindstrom"}}

这是我所期望的,但如果我看看Chrome开发工具中的响应,它会显示:

[{"data":{"name":"Steve","twitter":"@stevelindstrom"}}]

知道为什么我的物体会卡在一个数组里吗?我有其他几乎相同的页面(只是不同的数据),它们显示为我所期望的…

编辑:我尝试使用JSON_FORCE_OJECT,得到了相同的结果。

尝试将json_encode添加为第二个参数JSON_FORCE_OBJECT返回JSON还是字符串,我指的是Content-type头,是text/html还是(在这种情况下应该是)application/json?或者只是JSON.stringify方法将其封装到一个数组中,尝试使用dragonfly或其他工具来查看服务器原始响应的来源。

根据您的问题,响应是一个json字符串。这将使JSON.Stringify调用变得多余。去掉它,看看会发生什么。