从JSON字符串中提取/解码变量

时间:2012-05-21 17:37:21

标签: php json facebook-graph-api

  

可能重复:
  How to decode a JSON string in PHP?

我想从json字符串'name'中提取变量$jsonstring;

<?php

$facebookid = $_GET['fbid'];
$facebooklink = 'http://graph.facebook.com/'.$facebookid.'?fields=name';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $facebooklink);
curl_setopt($ch, CURLOPT_HEADER, 0);
$jsonstring = curl_exec($ch);
curl_close($ch);

?>

$jsonstring会输出如下内容:

{
   "name": "THIS PART IS WHAT I WANT",
   "id": "4"
}

我想从上面的例子中提取'这部分是我想要的'。

我已经尝试过使用json_decode但无法使其工作,我已经删除了该代码,因此无法在此处编写。谢谢你的帮助。

5 个答案:

答案 0 :(得分:3)

ob_start();
$facebookid = $_GET['fbid'];
$facebooklink = 'http://graph.facebook.com/'.$facebookid.'?fields=name';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $facebooklink);
curl_setopt($ch, CURLOPT_HEADER, 0);
$jsonstring = curl_exec($ch);
curl_close($ch);
$bufferstr = ob_get_contents();
ob_end_clean();
$json = json_decode($bufferstr);
echo $json->name;

答案 1 :(得分:1)

尝试:

<?php
  $foo = json_decode( $jsonstring);
  $name = $foo->name; 
  //echo $name;
?>

答案 2 :(得分:1)

试试这个

$json_obj = json_decode($jsonstring );
echo $json_obj->name; 

答案 3 :(得分:0)

<?php
    $json = '{"foo-bar": 12345}';

    $obj = json_decode($json);
    print $obj->{'foo-bar'}; // 12345
?>

答案 4 :(得分:0)

如果你的php版本中没有“json_decode”,你应该使用正则表达式。

<?php

$name = json_decode( $jsonstring )->name;

?>