> 백엔드 개발 > PHP 튜토리얼 > JSON을 디코딩할 때 'stdClass 유형의 개체를 배열로 사용할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?

JSON을 디코딩할 때 'stdClass 유형의 개체를 배열로 사용할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-17 11:42:25
원래의
516명이 탐색했습니다.

Why am I Getting the

오류 이해: "stdClass 유형의 객체를 배열로 사용할 수 없습니다."

JSON 문자열을 디코딩하려고 시도하는 동안 다음과 같은 문제가 발생할 수 있습니다. 오류 "치명적인 오류: stdClass 유형의 개체를 배열로 사용할 수 없습니다." 이 오류는 json_decode() 함수의 출력을 객체가 아닌 배열로 처리하려고 할 때 발생합니다.

해결책: True Second Argument와 함께 json_decode() 함수 사용

json_decode() 함수는 출력을 배열 또는 배열로 반환할지 여부를 지정할 수 있는 선택적 두 번째 인수를 제공합니다. 물체. 기본적으로 json_decode()는 객체를 반환합니다.

JSON 문자열을 배열로 디코딩하려면 두 번째 인수를 true로 설정해야 합니다. 수정된 코드는 다음과 같습니다.

$result = json_decode($jsondata, true);
로그인 후 복사

배열 키 액세스

JSON 문자열이 배열로 디코딩되면 배열 키를 사용하여 해당 요소에 액세스할 수 있습니다. 예를 들어 배열에 "Result"라는 키가 포함되어 있으면 다음과 같이 액세스할 수 있습니다.

print_r($result['Result']);
로그인 후 복사

대체 방법

json_decode를 사용하는 것 외에도 () 함수에 실제 두 번째 인수를 사용하는 경우 JSON 개체를 개체로 변환하는 다른 방법이 있습니다. array:

  • array_values(json_decode($jsondata, true)) 사용: 이 접근 방식은 속성 이름 대신 정수 키가 있는 배열을 반환합니다.
  • 객체를 객체로 액세스: json_decode()가 반환한 객체의 속성에 다음과 같이 직접 액세스할 수 있습니다. 다음:
print_r($obj->Result);
로그인 후 복사

위 내용은 JSON을 디코딩할 때 'stdClass 유형의 개체를 배열로 사용할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿