테스트 사이트 - 개발 중인 베타 버전입니다

stdClass는 접근법이 다른가요? 채택완료

레드불355 3년 전 조회 1,928

다른 사람이 작성한 코드인데 유투브 api를 통해서 아래와 같은 값을 받아서

배열 형태로 출력도 됩니다.

</p>

<p>array(1) {

  [0]=>

  object(stdClass)#21 (4) {

    ["kind"]=>

    string(13) "youtube#video"

    ["etag"]=>

    string(27) "CiEB44mqNWDY5wC8nWhXwqh3K8E"

    ["id"]=>

    string(11) "wKD-1vUYhVM"

    ["statistics"]=>

    object(stdClass)#22 (4) {

      ["viewCount"]=>

      string(7) "2354814"

      ["likeCount"]=>

      string(5) "27245"

      ["favoriteCount"]=>

      string(1) "0"

      ["commentCount"]=>

      string(4) "3738"

    }

  }

 </p>

<p>

그런데 제가 필요한 값은

statistics에 viewCount값입니다.

 

필요한 값을 출력하려면 연관배열처럼 접근하면 되나요?

 

아니면 stdClass가 선언(?)되었기 때문에 다른 방법을 접근해야 하나요?

 

</p>

<pre>
foreach ( $statistics_ob->items as $data ){
    $viewCount = $data->statistics->viewCount;          // 조회수
}</pre>

<p>

 

필요한 부분을 출력하니, file_get_contents와 foreach 부분에서 경고가 나오고 

값이 출력 안되네요.

 

</p>

<pre>
$snippet_json = file_get_contents($snippet_url);

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
그누위즈

간단합니다. 먼저 객체를 json 객체로 바꾸면 객체의 문자열이 JSON 형태로 반환됩니다.
해당 결과를 가져 와서 추가 매개 변수 인 true로 디코딩하면 연관 배열로 변환됩니다.

</p>

<p>$array = json_decode(json_encode($statistics_ob), true);</p>

<p>print_r2($array);</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

레드불355
3년 전
json_decode()한게 저 위의 값인데
위의 값에서 더 안쪽(?)으로 접근하면 null값이 나옵니다.

위의 결과값을 다시 json_decode() 해야 하는 걸까요?
그누위즈
3년 전
간단하게는 stdClass를 가지고있는 그 배열을 json_encode하시고 decode해보세요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인