2014-01-11 38 views
0

我对json有点新鲜。我从facebook oauth得到这个响应。我无法得到一个正确的方法来获取数据到php中的变量/对象。在php和facebook api中解码json

{ 
    "data":{"app_id":xxxxxxxxxx, 
      "is_valid":true, 
      "application":"Opensource Education Dot in", 
      "user_id":xxxxxxxxxx, 
      "issued_at":1389448259, 
      "expires_at":1394632259, 
      "scopes":["basic_info","email","public_profile","user_friends"] 
      } 

} 

这就是我卡住了。不知道如何获得每个响应。此外,我只得到这个作为回应。但范围内的确切值(如电子邮件,basic_info等)我如何得到它们?

$userdata=json_decode($response); 

回答

0

使用

$userdata=json_decode($response,true); 

对于长期用户ID发给你可以使用下面 -

$userdata= = json_decode(preg_replace('/"uid":(\d+)/', '"uid":"$1"', $response),true); 

也可以用作

$userdata= json_decode($response, true, 512, JSON_BIGINT_AS_STRING) 

它会给你一个阵列。

此外,您可以检查线程更多的变化

How to get around or make PHP json_decode not alter my very large integer values?

+0

HI,应用程序ID和用户ID过长所以得到它的指数形式。我如何解决这个问题? –

+0

我已经更新了答案检查现在..您可以用您的preg_replace替换uid,我认为它的user_id在您的情况。 –

+0

你可以在这里查看类似的long userid问题,我之前回答了http://stackoverflow.com/questions/20931751/fql-api-issues-with-array-translation/20931887#20931887 –