2014-12-27 71 views
0

我使用ajax發送一個JSON字符串(從facebook api正確接收)到PHP。當我嘗試解析JSON字符串時,它會爲字符串添加額外的字符,當我嘗試從字符串中獲取值時,我什麼也得不到。在PHP中解析json返回空白

下面是從Facebook返回的JSON:

{"id":"redacted","email":"redacted","first_name":"redacted","gender":"female","last_name":"redacted","link":"redacted","locale":"en_US","name":"redacted","timezone":-6,"updated_time":"2014-12-17T23:10:00+0000","verified":true} 

這裏是AJAX:

$.ajax({ 
         type: "POST", 
         url: "signupfacebookajax.php", 
         data: { theresponse: JSON.stringify(response) }, 
         success: function(crap){ console.log(crap)} 
         }); 
       }); 

這裏是PHP頁面signupfacebookajax.php代碼:

$response = $_POST['theresponse']; 
$jsondecode = json_decode($response); 
$facebook_id = $jsondecode->id; 
echo $facebook_id; 

注意事項完全返回。在解決問題時,我注意到JSON字符串在解碼後看起來很奇怪。這是我在通過ajax傳遞之後解碼字符串後得到的。

{\"id\":\"redacted\",\"email\":\"redacted\",\"first_name\":\"redacted\",\"gender\":\"female\",\"last_name\":\"redacted\",\"link\":\"redacted\",\"locale\":\"en_US\",\"name\":\"redacted\",\"timezone\":-6,\"updated_time\":\"2014-12-17T23:10:00+0000\",\"verified\":true} 
+0

那是輸出$響應,或$ jsondecode? –

+0

$ response是由ajax發送的字符串,$ jsondecode正在解碼該字符串。 $ facebook_id是json字符串在解碼後不顯示任何內容的id。不知道它如何或在哪裏發生 – gikygik

+0

好吧,我能夠解碼沒有任何問題:既來自Facebook的反應和所有的\。 –

回答

0

您是否嘗試過禁用魔術引號?它看起來像你的php.ini有

magic_quotes_gpc = On 

更多閱讀Disable Magic Quotes

要禁用它只需更換有關Off

magic_quotes_gpc = Off