>백엔드 개발 >PHP 튜토리얼 >`json_decode()`가 배열 대신 객체를 반환하는 이유는 무엇이며 어떻게 해결할 수 있나요?

`json_decode()`가 배열 대신 객체를 반환하는 이유는 무엇이며 어떻게 해결할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-12-26 21:30:19558검색

Why Does `json_decode()` Return an Object Instead of an Array, and How Can I Fix It?

배열 생성을 위한 json_decode() 문제 해결

json_decode()를 사용하여 JSON 데이터를 배열로 구문 분석하려고 하면 개발자에게 오류가 발생할 수 있습니다. 객체를 배열로 활용할 수 없음을 나타냅니다. 이 문서는 이 문제를 해결하고 JSON 문자열에서 배열을 생성하는 올바른 접근 방식을 설명하는 것을 목표로 합니다.

오류 설명

"치명적인 오류: 유형의 개체를 사용할 수 없습니다. stdClass as array"는 json_decode()가 JSON 데이터를 배열 대신 객체로 해석했음을 의미합니다. 기본적으로 json_decode()는 JSON 객체의 키에 해당하는 속성이 있는 stdClass 객체를 반환합니다.

해결책: 반환 유형 지정

이 문제를 해결하려면, 원하는 반환 값이 배열이어야 함을 명시적으로 나타내는 것이 필요합니다. 이는 아래와 같이 json_decode()의 두 번째 인수로 true를 지정하여 달성됩니다.

$result = json_decode($jsondata, true);

이 수정을 통해 $result는 키가 JSON의 속성 이름과 일치하는 연관 배열이 됩니다. object.

대체 옵션

정수 키가 선호되는 시나리오에서 속성 이름 대신 추가 단계가 필요합니다.

$result = array_values(json_decode($jsondata, true));

이 코드는 먼저 JSON 데이터를 연관 배열로 디코딩한 다음 array_values()를 사용하여 정수 키가 있는 배열로 변환합니다.

배열 요소 액세스

JSON 데이터가 배열로 성공적으로 디코딩되면, 해당 요소에 액세스하는 것은 간단합니다. 다음 코드는 JSON 문자열에서 "Result" 속성에 액세스하는 방법을 보여줍니다.

print_r($result['Result']);

이 지침을 따르면 개발자는 json_decode()를 사용하여 JSON 문자열에서 배열을 효과적으로 생성하여 객체 처리 오류를 방지할 수 있습니다. 배열로.

위 내용은 `json_decode()`가 배열 대신 객체를 반환하는 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.