문제
대본:
$x = json_decode( $x );
foreach ( $x as $item )
{
$info[] = $item; //ERROR
}
데이터를 얻기 위해 데이터 피드를 사용하지만 반복하고 있습니다. 루프의 STDClass 객체에 항목을 추가하고 싶습니다. 어떻게할까요? 나는 Stdobj 's에 익숙하지 않습니다.
해결책
JSON_DECODE가 배열을 반환 할 것으로 예상하면 다음을 수행 할 수 있습니다.
$x = json_decode( $x, true ); // returns associative array instead of object
$info = (object) $x;
더 많은 정보와 예를 찾을 수 있습니다 여기.
다른 팁
내가 당신을 올바르게 이해한다면, 당신은 당신이 원하는 결과를 얻으려면 일반 객체 구문을 따를 수 있어야합니다. 옵션 두 번째 매개 변수를 추가하십시오 json_decode
로 설정 true
JSON을 연관 배열로 디코딩하려면 이것이 마치 사용하는 형태 인 것처럼 보입니다.
$info = new stdClass();
$x = json_decode( $x, true );
foreach ( $x as $key => $val) {
$info->$key = $val;
}
Ignas가 지적했듯이 json_decode()
이미 stdclass 객체로 돌아와서 방금 사용했다면 $x = json_decode($x)
, 당신은 필요하지 않을 것입니다 $info
전혀 ... 당신은 이미 가지고있을 것입니다 $x
stdclass 객체로.
SPL
'에스 ArrayObject
예제에서 오류를 생성하는 동일한 구문을 사용하겠습니다. 이것은 당신이 사용할 능력이있는 경우 ArrayObject
대신 a stdClass
.
제휴하지 않습니다 StackOverflow