这是一个两部分问题。首先,我有代码用graph.facebook.com
调用用户可以输入的参数。这会在调用时返回一个json。
代码如下:
$RAW_DATA = json_decode(file_get_contents($URL_FINAL));
如果我在浏览器中找到URL,一切都很有条理但是如果我使用var_dump()
,看起来浏览器中没有显示额外的字段,我的解码是否有问题或是{ {1}}显示我在浏览器上看不到的内容?
其次,在检索JSON之后,试图访问其中的数据子域已经证明是有问题的。
例如:
var_dump()
这是URL返回的内容,我如何从中提取“故事”?
我尝试了几种不同的语法样式,但唯一返回任何内容的是 {
"data": [
{
"id": "11111111_111111111",
"from": {
"name": "John",
"id": "111111111"
},
"story": "John shared We Are Change's photo.",
"picture": "http://photos-e.ak.fbcdn.net/hphotos-ak-prn1/35552_10151311513538690_352701444_s.jpg",
"link": "http://www.facebook.com/photo.php?fbid=10151311513538690&set=a.10150159213018690.338979.86518833689&type=1",
"name": "Timeline Photos",
"caption": "Happy election day everybody!",
"properties": [
{
"name": "By",
"text": "We Are Change",
"href": "http://www.facebook.com/WeAreChange.org?ref=stream"
}
]
}
,这只是打印'Array'。一旦我尝试进入下一层,我就无法进行任何打印。
答案 0 :(得分:0)
那是因为“data”是一个对象(或关联数组)的数组。
$RAW_DATA->{'data'}[0];
如果你总是知道它只有一个元素,那就行了,否则你应该遍历$ RAW_DATA-> {'data'}。
或简化:
$RAW_DATA['data'][0]['story']
答案 1 :(得分:0)
尝试以下方法:
var_dump($RAW_DATA['data']);
var_dump($RAW_DATA['data']['id']);
这会将$ RAW_DATA视为一个数组,并且可以正常工作。
$ RAW_DATA->数据会将其视为对象,并且会失败。