PHP的json_encode和jQuery

时间:2012-02-20 16:31:49

标签: php json

我正在对页面/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中,当我使用PEAR Log类记录json_encode的结果时,我得到:

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

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

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

知道为什么我的对象会陷入阵列?我有其他几乎相同的页面(只是不同的数据),它们会出现在我期望它们......

编辑:我尝试使用JSON_FORCE_OBJECT并获得了相同的结果。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

根据您的问题,响应是一个json字符串。哪会使JSON.Stringify调用多余。删除它,看看会发生什么。