在PHP中解析json返回空白

时间:2014-12-27 08:10:51

标签: php ajax json facebook

我正在使用ajax将一个JSON字符串(从facebook api正确收到)发送给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}

1 个答案:

答案 0 :(得分:0)

你试过禁用魔法引号吗???看起来你的php.ini有

magic_quotes_gpc = On

更多阅读Disable Magic Quotes

要禁用它,只需将On替换为Off

magic_quotes_gpc = Off