라이브러리

[PHP] JsonSerializable::jsonSerialize - JSON으로 직렬화해야 하는 데이터 지정




JsonSerializable::jsonSerialize


JsonSerializable::jsonSerialize는 PHP 5.4에서 도입된 인터페이스입니다. 이 인터페이스를 구현한 클래스는 JSON.stringify()와 같은 함수에서 직렬화할 수 있습니다. 직렬화란 객체의 속성을 JSON 형식으로 변환하는 것을 의미합니다.

JsonSerializable::jsonSerialize 메소드


JsonSerializable::jsonSerialize 메소드는 객체의 속성을 JSON 형식으로 변환하는 메소드입니다. 이 메소드는 객체의 속성을 JSON 형식으로 변환하여 반환합니다.

예제


아래 예제는 JsonSerializable::jsonSerialize를 구현한 클래스를 생성하고, 이 클래스의 인스턴스를 JSON 형식으로 변환하는 예제입니다.

#hostingforum.kr
php

class Person implements JsonSerializable {

    private $name;

    private $age;



    public function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }



    public function jsonSerialize() {

        return [

            'name' => $this->name,

            'age' => $this->age

        ];

    }

}



// 인스턴스 생성

$person = new Person('John Doe', 30);



// JSON 형식으로 변환

$json = json_encode($person);



// 결과 출력

echo $json; // {"name":"John Doe","age":30}



예제 설명


위 예제에서 Person 클래스는 JsonSerializable::jsonSerialize 인터페이스를 구현했습니다. Person 클래스의 jsonSerialize 메소드는 객체의 속성을 JSON 형식으로 변환하여 반환합니다. 인스턴스를 생성하고, json_encode() 함수를 사용하여 JSON 형식으로 변환한 후 결과를 출력했습니다.

추가 예제


아래 예제는 JsonSerializable::jsonSerialize를 구현한 클래스를 생성하고, 이 클래스의 인스턴스를 JSON 형식으로 변환하는 예제입니다. 이 예제에서는 Person 클래스의 속성을 JSON 형식으로 변환하는 대신, 객체의 속성을 JSON 형식으로 변환하는 다른 방법을 사용했습니다.

#hostingforum.kr
php

class Person implements JsonSerializable {

    private $name;

    private $age;



    public function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }



    public function jsonSerialize() {

        return (object) [

            'name' => $this->name,

            'age' => $this->age

        ];

    }

}



// 인스턴스 생성

$person = new Person('John Doe', 30);



// JSON 형식으로 변환

$json = json_encode($person);



// 결과 출력

echo $json; // {"name":"John Doe","age":30}



예제 설명


위 예제에서 Person 클래스는 JsonSerializable::jsonSerialize 인터페이스를 구현했습니다. Person 클래스의 jsonSerialize 메소드는 객체의 속성을 JSON 형식으로 변환하여 반환합니다. 인스턴스를 생성하고, json_encode() 함수를 사용하여 JSON 형식으로 변환한 후 결과를 출력했습니다.

결론


JsonSerializable::jsonSerialize 인터페이스는 객체의 속성을 JSON 형식으로 변환하는 데 사용됩니다. 이 인터페이스를 구현한 클래스는 JSON.stringify()와 같은 함수에서 직렬화할 수 있습니다. 위 예제를 통해 JsonSerializable::jsonSerialize 인터페이스를 구현한 클래스를 생성하고, 이 클래스의 인스턴스를 JSON 형식으로 변환하는 방법을 살펴보았습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 434 페이지

검색

게시물 검색