我在做一個AJAX調用頁面/person/steve
:PHP的json_encode和jQuery
$.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,當我登錄的結果該json_encode
使用PEAR Log類的,我得到:
{"data":{"name":"Steve","twitter":"@stevelindstrom"}}
這是我所期望的,但如果我看在Chrome開發工具的響應,它顯示:
[{"data":{"name":"Steve","twitter":"@stevelindstrom"}}]
任何想法,爲什麼我的對象陷入到一個數組中?我有一個幾乎是一樣的(只是不同的數據)的其他頁面,並且顯示在我所期望的那樣......
編輯:我嘗試使用JSON_FORCE_OBJECT和我得到了相同的結果。
如果在轉儲到控制檯之前沒有進行串聯操作,它會不同嗎? – 2012-02-20 16:35:04
告訴jquery數據類型是json,它會自動將json字符串解碼爲本機結構。然後,您可以在console.log調用中將該結構重新編碼爲json字符串。所以這是json庫做額外的數組。 'console.log(response)'顯示什麼? – 2012-02-20 16:36:10
忽略javascript的那一行 - 我正在查看'Chrome開發工具'中的'HTTP響應,我相信它在它到達javascript之前。但是,爲了好奇,'console.log'顯示了與HTTP響應相同的內容。 – Steve 2012-02-20 16:43:13