> 백엔드 개발 > PHP 튜토리얼 > PHP 5.4 이전에는 PHP 객체를 JSON으로 변환하려면 어떻게 해야 합니까?

PHP 5.4 이전에는 PHP 객체를 JSON으로 변환하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-10-29 03:31:02
원래의
705명이 탐색했습니다.
How can I convert PHP objects to JSON before PHP 5.4? 
방법 1: 유형 캐스팅 및 배열 캐스팅

간단한 객체의 경우 객체를 배열로 유형 캐스팅합니다. 그런 다음 결과 배열을 인코딩하면 충분합니다.

방법 2: 재귀 toArray 메서드

객체 클래스에 toArray() 메서드를 생성하여 해당 배열을 재귀적으로 변환합니다. 속성을 배열에 추가합니다. 속성 자체가 객체인 경우 속성에 대해서도 toArray()를 재귀적으로 호출합니다.

<code class="php">$json = json_encode((array)$object);</code>
로그인 후 복사
배열에서 순환 참조(예: _parent)를 제거하면 재귀 관련 문제를 피할 수 있습니다.

방법 3: 인터페이스 기반 변환

<code class="php">public function toArray()
{
    $array = (array) $this;
    array_walk_recursive($array, function (&$property) {
        if ($property instanceof Mf_Data) {
            $property = $property->toArray();
        }
    });
    return $array;
}</code>
로그인 후 복사
객체를 배열로 변환(toMap())하고 가져오기 위한 메서드가 포함된 인터페이스(예: ToMapInterface)를 정의합니다. 변환에 포함할 속성의 하위 집합(getToMapProperties()):

<code class="php">public function toArray()
{
    $array = get_object_vars($this);
    unset($array['_parent'], $array['_index']);
    array_walk_recursive($array, function (&$property) {
        if (is_object($property) && method_exists($property, 'toArray')) {
            $property = $property->toArray();
        }
    });
    return $array;
}</code>
로그인 후 복사
Node 클래스에서 다음 메서드를 구현하여 보다 구조화되고 테스트 가능한 변환 프로세스를 만듭니다.

위 내용은 PHP 5.4 이전에는 PHP 객체를 JSON으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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