【问题标题】:PHP & json_decode - how to get property of objectPHP & json_decode - 如何获取对象的属性
【发布时间】:2016-03-01 20:01:38
【问题描述】:

上下文

我正在使用json_decode 将 Facebook 开放图形调用的内容转换为 php 对象。

编辑以添加代码

我的代码如下所示:

$json = json_decode(file_get_contents("http://graph.facebook.com/http://example.com"),true);
var_dump($json);

结果对象的var_dump 如下所示:

ARRAY(3) { ["ID"]=> STRING(18) "HTTP://EXAMPLE.COM" ["SHARES"]=> INT(14604317) ["COMMENTS"]=> INT(11300) }

问题

我想从这个对象中得到 12。我假设$json->shares 会返回 12,但它却返回 null。知道检索 12 的正确语法是什么吗?

【问题讨论】:

  • $object 来自哪里?你的代码只显示了一个$json 变量?

标签: php json facebook facebook-opengraph


【解决方案1】:

您的数组看起来不正确。在浏览器中查看http://graph.facebook.com/http://example.com,注意键和值都是小写的,而不是像你一样的大写。

如果你真的在测试http://graph.facebook.com/http://example.com,那么这将起作用:

$array = json_decode(file_get_contents('http://graph.facebook.com/http://example.com'), true);
echo $array['shares'];

这给了我14604317,我可以在我的浏览器中看到正确的结果。

注意你有一个数组,而不是一个对象。所以使用数组表示法:

【讨论】:

  • 感谢您的回复。这不起作用 - 它仍然返回 null
  • @Sekoul 那么您还有其他事情要做,更新您的问题并提供更多代码。
  • @Sekoul 我添加了一个链接,显示此代码确实有效,您在上面显示的数组。如果它对您不起作用,那么您的阵列是不同的,您需要向我们展示您实际在使用什么。
  • 我已经添加了上面的完整代码 - 我认为您正在测试的版本格式略有不同:'{ "ID" : "HTTP://EXAMPLE.COM", "SHARES" : 12 }'ARRAY(3) { ["ID"]=> STRING(18) "HTTP://EXAMPLE.COM" ["SHARES"]=> INT(14604317) ["COMMENTS"]=> INT(11300) }
  • 您上面的代码仍然没有任何意义。您显示了一个$json 变量,然后尝试访问$object?这是从哪里来的?
猜你喜欢
  • 1970-01-01
  • 2019-04-19
  • 2014-10-01
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
相关资源
最近更新 更多