PHP에서 데이터를 json 문자열로 변환할 때 json_encode(mixed $value)
함수를 사용하게 된다.
이 함수를 이용해 개체를 변환할 때에도 활용할 수 있다.
기본적으로 클래스에서 public 인 프로퍼티에 대해서만 json 으로 변환된다.
protected 나 private 또는 데이터를 가공헤 json 으로 반환해야 한다면 해당 클래스에서 JsonSerializable
인터페이스를 구성해 어떤 형태로 변환할 것인지 정의할 수 있다.
해당 인터페이스는 PHP 5.4.0 이상 에서 지원하고 있다.
public 프로퍼티만 필요로 한 경우라면 별도의 인터페이스 구성 없이도 사용할 수 있다.
다만 대부분의 라이브러리에서 protected 또는 private 로 프로퍼티를 작성하고 __get()
, __set()
매직 메소드를 구현해 사용하고 있고 또 권장하고 있기 때문에 그런 경우엔 다음과 같이 JsonSerializable
인터페이스를 활용할 수 있다.
(!) 기본적으로 클래스에서 public 인 프로퍼티에 대해서만 json
형태로 변환된다. public 프로퍼티만 필요한 경우엔 별도의 인터페이스 구성 없이도 사용할 수 있다.
(!) 대부분 라이브러리에서 protected 또는 private 로 프로퍼티를 작성하고 __get()
, __set()
매직 메소드를 구현해 사용하고 있고 또 권장하고 있어 그런 경우엔 JsonSerializable
인터페이스를 활용할 수 있다.
PHP의 json_encode() 함수에서 JsonSerializable 활용하기
0개 댓글