2012-06-18 1 views
1

Yahoo fantasy sports 데이터를 쿼리하고 구문 분석하여 친숙한 형식으로 결과를 표시하려고합니다. 여기 야후 판타지 스포츠 API를 사용하는 PHP와 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 
    } 
} 

... 내가 성공 요청에서 다시 야후에서 얻을 JSON이다. 내가 필요로하는 노드에 드릴로 다음 PHP 코드 (무수한 변형 중)를 사용하여 시도했지만 아무런 운이 없다.

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

나는 누군가가 내가 명확에서 실패로 위의 JSON을 사용하여 작업 예제를 제공 할 수있을 것으로 기대하고있다. 어떤 도움이라도 대단히 감사하겠습니다.

미리 감사드립니다.

+0

을 통해 루프에 cout을 사용할 수 있습니다 이

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

수정을 시도 0] -> user-> teams-> team;'(첫 번째 엔트리의 경우) –

+0

"stdClass 유형의 객체를 배열로 사용할 수 없습니다"라는 오류가 발생합니다. – joeyd

+0

API는 무엇입니까? – Rajneesh071

답변

0

그것은`$ 데이터 = $를 OBJ> fantasy_content-> 사용자 [만큼 쉽다 수 있습니다 당신은 이름

$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 
} 
+0

찍어 버려! 고마워요! – joeyd

+0

흠 ... "카운트"가 여분의 루프를 추가하는 것처럼 보입니다. 결과는 이렇게 추가 팀 이름으로 돌아옵니다 ... "이름 : 팀 테스트, 이름 : 팀 API, 이름 :". 같은 수준의 "카운트"때문인 것 같습니다. – joeyd

+0

@joeyd 편집을 참조하십시오. – Musa

관련 문제