2011-01-15 10 views
1

PHPのJSONデータをforeachにしたいのですが、問題が発生しました。最初:propertiesの部分を取得できません。第二に、それはラインで間違ったショーをalawys:echo '<div class="image">... Fatal error: Cannot use object of type stdClass as array in ... これはJSONデータである:ここでPHPのJSONデータforeachの問題

[ 
    { 
     "post_id": "504464716_189878284371815", 
     "message": "\"Happy Birthday to You\" \"Happy Birthday to Mama\"", 
     "attachment": { 
      "media": [ 
       { 
        "href": "http:\/\/www.facebook.com\/photo.php?fbid=493710409716&set=a.453260184716.254996.504464716", 
        "alt": "", 
        "type": "photo", 
        "src": "http:\/\/photos-f.ak.fbcdn.net\/hphotos-ak-snc4\/hs049.snc4\/34793_493710409716_504464716_5821684_2056840_s.jpg", 
        "photo": { 
         "aid": "2166659457206182932", 
         "pid": "2166659457211749620", 
         "owner": 504464716, 
         "index": 24, 
         "width": 225, 
         "height": 225 
        } 
       } 
      ], 
      "name": "Wall Photos", 
      "href": "http:\/\/www.facebook.com\/album.php?aid=254996&id=504464716", 
      "caption": "\"Happy Birthday to You\" \"Happy Birthday to Mama\"", 
      "description": "", 
      "properties": [ 
       { 
        "name": "By", 
        "text": "Suman Acharya", 
        "href": "http:\/\/www.facebook.com\/profile.php?id=504464716" 
       } 
      ], 
      "icon": "http:\/\/static.ak.fbcdn.net\/rsrc.php\/yD\/r\/aS8ecmYRys0.gif", 
      "fb_object_type": "album", 
      "fb_object_id": "2166659457206182932" 
     }, 
     "action_links": null, 
     "privacy": { 
      "value": "" 
     } 
    }, 
... 
] 

は私のPHPコードです:

foreach ($data as $result) { 
echo '<div class="title"><a href="'.htmlspecialchars($result->link).'">'.htmlspecialchars($result->message).'<br />'.htmlspecialchars($result->description).'<br />'.htmlspecialchars($result->caption).'</a><br />'; 
if(!empty($result->attachment->properties[0]->text)){ 
    foreach ($result->attachment->properties[0] as $properties) { 
echo htmlspecialchars($properties->name).'<br /><a href="'.htmlspecialchars($properties->href).'">'.htmlspecialchars($properties->text).'</a></div>'; 
    } 
} 
if(!empty($result->attachment->media)){ 
echo '<div class="image"><a href="'.htmlspecialchars($result->attachment->media[0]->href).'"><img src="'.htmlspecialchars($result->attachment->media[0]->src).'" /><br>'.htmlspecialchars($result->attachment->media[0]->type).'</a></div>'; 
} 
} 
+0

var_dump($ result)の結果を投稿できます(xdebugを持たない場合は、改行を取得するためにソースを表示してください)。 – Naatan

答えて

1

私があなただったら、私はちょうどにデコードを強制します2番目の引数としてtrueによってassoc配列をjson_decodeに変換します。それはあなたの代わりにStdClassの連想配列を返します。そのよう

$result->attachment->media->{0}->href

0

代わりjson_decode($the_data);の使用json_decode($the_data, true);を:あなたはカントやいけない場合には、このようにそれにアクセスしてみてくださいことをやりたいです。