PHP-解析Facebook Post JSON
我真的很难从Facebook的Graph API解析JSON数据。我正在使用PHP-解析Facebook Post JSON,php,json,parsing,facebook-graph-api,Php,Json,Parsing,Facebook Graph Api,我真的很难从Facebook的Graph API解析JSON数据。我正在使用file\u get\u contents和json\u decode对对象进行解码 $json = file_get_contents($facebook_url); $obj = json_decode($json, true); 以下是一些JSON示例: { "data": [ { "place": { "id": "134972803193847", "name":
file\u get\u contents
和json\u decode
对对象进行解码
$json = file_get_contents($facebook_url);
$obj = json_decode($json, true);
以下是一些JSON示例:
{
"data": [
{
"place": {
"id": "134972803193847",
"name": "University of Southern California",
"location": {
"city": "Los Angeles",
"country": "United States",
"latitude": 34.021142052439,
"longitude": -118.28519155575,
"state": "CA",
"street": "3551 Trousdale Pkwy",
"zip": "90089"
}
},
"picture": "https://fbcdn-vthumb-a.akamaihd.net/hvthumb-ak-xtf1/v/t15.0-10/xxxxxxxx",
"id": "xxxxxxxxxx",
"created_time": "2015-06-12T02:26:04+0000"
},
{
"place": {
"id": "74286767824",
"name": "Los Angeles International Airport (LAX)",
"location": {
"city": "Los Angeles",
"country": "United States",
"latitude": 33.943998965589,
"longitude": -118.402533192,
"state": "CA",
"street": "1 World Way",
"zip": "90045"
}
},
"picture": "https://scontent.xx.fbcdn.net/hphotos-xat1/v/t1.0-9/xxxxxxx",
"id": "xxxxxxxx12321",
"created_time": "2015-06-06T22:57:49+0000"
},
],
"paging": {
"previous": "https://graph.facebook.com/v2.3/wfefwfwefwe",
"next": "https://graph.facebook.com/v2.3/fweewfwef"
}
}
我尝试过各种解决方案,但echo
一直在打印“Array”
我试图为每个帖子获取一些字段,比如id、姓名、城市、国家、纬度、经度、州、创建时间、图片
我试过这个,它只是打印了很多次“数组”。我知道这是一个简单的JSON解析/PHP问题
foreach($obj['data'] as $chunk) {
foreach($chunk['place'] as $place) {
$fbid = $place['id'];
$name = $place['name'];
$location = $place['location'];
$city = $location['city'];
$country = $location['country'];
$latitude = $location['latitude'];
$longitude = $location['longitude'];
$state = $location['state'];
$tuple = array($fbid, $name, $city, $country, $latitude, $longitude, $state);
echo $tuple . "\n";
}
}
echo
打印Array()
,因为您正在将数组强制转换为字符串
要以可读格式打印数组,请使用print\r($obj)代码>然后,要打印第一个位置的id,例如,使用echo$obj['data'][0]['place']['id']编码>或循环遍历所有位置并打印每个id使用
foreach ($obj['data'] as $a) {
echo $a['place']['id'];
}
您可以在PHP手册页面上找到有关打印的更多信息。
您的输出是一个对象。因此,您不能通过[
访问对象
试试这个:
foreach($obj->data as $chunk) {
$fbid = $chunk->place->id;
$name = $chunk->place->name;
$location = $chunk->place->location;
$city = $location->city;
$country = $location->country;
$latitude = $location->latitude;
$longitude = $location->longitude;
$state = $location->state;
$tuple = array($fbid, $name, $city, $country, $latitude, $longitude, $state);
print_r( $tuple);
}
输出:
Array
(
[0] => 134972803193847
[1] => University of Southern California
[2] => Los Angeles
[3] => United States
[4] => 34.021142052439
[5] => -118.28519155575
[6] => CA
)
Array
(
[0] => 74286767824
[1] => Los Angeles International Airport (LAX)
[2] => Los Angeles
[3] => United States
[4] => 33.943998965589
[5] => -118.402533192
[6] => CA
)
当您需要打印数组时,您不能使用echo
。您应该使用or。此代码向我发出警告,表示我正在将不正确的对象传递到foreach循环:/