1

Yahooのファンタジースポーツデータをクエリして解析し、結果をわかりやすい形式で表示しようとしています。

これが、成功したリクエストからYahooから返されるJSONです...

{
"fantasy_content": {
"xml:lang": "en-US",
"yahoo:uri": "\/fantasy\/v2\/users;use_login=1\/teams",
"users": {
  "0": {
    "user": [
      {
        "guid": "1234567890"
      },
      {
        "teams": {
          "0": {
            "team": {
              "team_key": "268.l.auto.t.209996",
              "team_id": "209996",
              "name": "Team Test",
              "type": "auto"
            }
          },
          "1": {
            "team": {
              "team_key": "273.l.auto.t.27741",
              "team_id": "27741",
              "name": "Team API",
              "type": "auto"
            }
          },
          "count": 2
        }
      }
    ]
  },
  "count": 1
},
"time": "29.808044433594ms",
"copyright": "Data provided by Yahoo! and STATS, LLC",
"refresh_rate": false
  }
}

チーム配列からチーム名を取得しようとしています。次のPHPコード(数え切れないほどのバリエーションの中で)を使用して、必要なノードにドリルダウンしようとしましたが、うまくいきません。

$obj=json_decode($json);
$data = $obj->fantasy_content->users->user->teams->team; 
foreach($data as $d){
echo 'name: ' . $d->name ; //prints php 
}  

私は明らかに失敗したので、誰かが上記のJSONを使用して実用的な例を提供できるかもしれないことを望んでいます。どんな助けでも大歓迎です。

前もって感謝します!

4

1 に答える 1

0

これを試して

$obj=json_decode($json);
$data = $obj->fantasy_content->users->{'0'}->user[1]->teams; 
foreach($data as $d){
    echo 'name: ' . $d->team->name ; //prints php 
}  

編集あなたは名前をループするためにcoutを使うことができます

$obj=json_decode($json);
$data = $obj->fantasy_content->users->{'0'}->user[1]->teams; 
for($i = 0; $i < $data->count; $i++){
    echo 'name: ' . $data->{$i}->team->name ; //prints php 
}  
于 2012-06-18T23:37:37.297 に答える