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

可能存在重复:
  如何解码PHP中的JSON字符串?

我想从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 would output something like the following:

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

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

我曾尝试使用json_decode,但无法得到它的工作,我已经删除该代码,因此不能写在这里。谢谢你的帮助。

1
额外 编辑
意见: 1
$ jsonstring = curl_exec($ ch); 不会给你指定json。它只是给你 curl_exec 的状态
额外 作者 bitoshi.n,

4 答案

尝试

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;
3
额外
@Andreas&OP - 感谢回复 - 然而,每个答案都会返回相同的结果:{“name”:“这部分是我想要的”,“id”:“4”}没有提取'name'不知道我做错了什么? :谢谢。
额外 作者 Harry,
我知道它有很多要问,但如果你能够快速查看我的代码,你会为我做一个巨大的,大规模的好处吗?我会非常感激,我已经上传.php文件到这里: dl.dropbox .com/u/2578642/facebookconf.php 谢谢
额外 作者 Harry,
我非常感谢你,非常感谢!它的工作现在 - 你已经帮了我很大的忙!再次感谢:D
额外 作者 Harry,
@有任何错误?任何输出回显或做 var_dump
额外 作者 bitoshi.n,
@Harry这是因为 $ jsonstring 没有给你json的内容。这只是 curl_exec 成功的状态。看看我编辑的帖子。我使用缓冲区来捕获json字符串。
额外 作者 bitoshi.n,

尝试:

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

尝试这个

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

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

<?php

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

?>
0
额外