2014-10-07 2 views
0

최근에 XboxAPI.com에서 Xbox API를 탐색하여 실제로 API를 사용하고 Json Data를 사용하여 지식과 자신감을 갖도록 노력했습니다. 내가 주변에 연극을 한 또 다른 질문에 대한 몇 가지 코드를 발견하고 다시 나에게 뭔가를주고 그것을 가지고, 내가 현재 사용하고있는 코드는 다음과 같습니다 브라우저에서 페이지를 방문Json에서 특정 정보 가져 오기

$url  = 'https://xboxapi.com/v2/2745051201447500/presence'; 
$headers = array(
    'X-AUTH: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
); 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$result = curl_exec($ch); 

나에게주는 다음

{"xuid":2745051201447500,"state":"Online","devices":[{"type":"XboxOne","titles":[{"id":714681658,"name":"Home","placement":"Background","state":"Active","lastModified":"2014-10-07T22:02:34.821235Z"},{"id":446059611,"activity":{"richPresence":"In a Street Race."},"name":"Forza Horizon 2","placement":"Full","state":"Active","lastModified":"2014-10-07T22:02:34.821235Z"}]}]} 

제 질문은 위의 정보 중에서 특정 정보를 어떻게 끌어낼 수 있습니까? 예를 들어 "이름"을 가져 와서 표시하고 싶다면 어떻게해야할까요? 나는 다음을 포함하여 몇 가지를 시도했다.

echo $result->devices[0]->type; 

그러나 작동하지 않았다. 나는 정답에서 얼마나 멀리 떨어져 있는지 모르지만 어떤 도움을 주시면 감사하겠습니다.

감사

답변

0

먼저 아래와 같이 json_decode를 실행하여 연관 배열을 만듭니다.

그런 다음 다 음과 같이 다차원 인덱스에 인덱스를 사용해야합니다.

그리고 voilla - 기본적으로 json_decode가 없습니다.

$result = json_decode(curl_exec($ch)); 
$result->devices[0]->type; 

윽은 - 또한

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

당신은 문자열 변수에 출력되지 컬있어

를 잊어 버렸습니다.

+0

답장 airtech에 감사드립니다. 불행히도 브라우저에서 볼 수있는 유일한 것은 Json뿐입니다. 위 코드에서 "Xbox One"이 표시되어야합니다. 맞습니까? – DroidShare

+0

예, 그래야합니다. – airtech

+0

var_dump (json_decode (curl_exec ($ ch))) 할 수 있습니까? – airtech

0

devices는 당신이 필요로하는, 그래서 배열합니다 (JSON에서 []주의)이다

$result->devices[0]->type // XboxOne 
       ^^^ 

titles 위해 개최 같은 - 그 또한 배열 그리고 PHP에서 역 참조 []를 필요 . var_dump($result)은 어레이의 구조화 된 형식화 된 덤프를 보여 주며, 그 안에있는 모든 데이터를 가져 오기 위해 사용해야하는 "경로"를 정확히 보여줍니다.

+0

Marc B에게 회신 해 주셔서 감사합니다. 그러나 내가 제안한 내용을 추가했지만 브라우저에서 정확히 동일하게 표시되지만 에코를 수행하지 않습니다. 나는 원래의 질문을 내가 사용하고있는 새로운 코드로 편집했다. 다시 한번 감사드립니다. – DroidShare