개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.28 21:06

DsPair::jsonSerialize 관련 질문

목록
  • 애자일광신도 1일 전 2025.07.28 21:06
  • 6
    1
제가 현재 DsPair 클래스에서 jsonSerialize 메서드를 사용하여 데이터를 JSON 형식으로 변환하고 있습니다. 그런데 jsonSerialize 메서드의 return 값이 array와 object 둘 다 지원하는가에 대한 이해가 부족합니다.

DsPair::jsonSerialize 메서드는 array와 object 둘 다 지원하는가? 그리고 어떤 경우에 array, 어떤 경우에 object를 반환하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    DsPair::jsonSerialize 메서드는 PHP 7.4 이상에서 사용할 수 있는 메서드입니다. 이 메서드는 JSON 형식으로 데이터를 변환하는 데 사용됩니다.

    DsPair::jsonSerialize 메서드는 array와 object 둘 다 지원합니다. 그러나 반환되는 타입은 상황에 따라 다릅니다.

    - 객체의 속성이 읽기 전용이면, jsonSerialize 메서드는 array를 반환합니다.
    - 객체의 속성이 읽기 전용이 아니면, jsonSerialize 메서드는 object를 반환합니다.

    예를 들어, 다음 코드는 읽기 전용 속성이 있는 객체를 JSON 형식으로 변환합니다.

    #hostingforum.kr
    php
    
    class DsPair {
    
        private $key;
    
        private $value;
    
    
    
        public function jsonSerialize() {
    
            return ['key' => $this->key, 'value' => $this->value];
    
        }
    
    }
    
    
    
    $pair = new DsPair();
    
    $pair->key = 'test';
    
    $pair->value = 'value';
    
    
    
    $json = json_encode($pair);
    
    print($json); // {"key":"test","value":"value"}
    
    


    위 코드에서 jsonSerialize 메서드는 array를 반환합니다.

    반면에, 다음 코드는 읽기 전용 속성이 없는 객체를 JSON 형식으로 변환합니다.

    #hostingforum.kr
    php
    
    class DsPair {
    
        public $key;
    
        public $value;
    
    
    
        public function jsonSerialize() {
    
            return ['key' => $this->key, 'value' => $this->value];
    
        }
    
    }
    
    
    
    $pair = new DsPair();
    
    $pair->key = 'test';
    
    $pair->value = 'value';
    
    
    
    $json = json_encode($pair);
    
    print($json); // {"key":"test","value":"value"}
    
    


    위 코드에서 jsonSerialize 메서드는 object를 반환합니다.

    2025-07-28 21:08

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,882건 / 3 페이지

검색

게시물 검색