
JsonSerializable::jsonSerialize 함수는 PHP 5.4 버전부터 지원되는 인터페이스입니다. 이 인터페이스를 구현하면, PHP가 객체를 JSON 형식의 문자열로 변환할 때 자동으로 호출됩니다.
이 함수의 역할은 객체의 프로퍼티를 JSON 형식의 문자열로 변환하는 것입니다. 기본적으로 PHP는 객체의 프로퍼티를 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 [
'name' => $this->name,
'age' => $this->age,
];
}
}
$person = new Person('John Doe', 30);
$json = json_encode($person);
print($json);
위 코드를 실행하면, 다음과 같은 JSON 문자열이 출력됩니다.
#hostingforum.kr
json
{"name":"John Doe","age":30}
위 코드에서 Person 클래스는 JsonSerializable 인터페이스를 구현하고, jsonSerialize 함수를 호출하면 Person 객체를 JSON 형식의 문자열로 변환합니다.
이러한 JSON 문자열을 JSON 형식의 데이터로 변환할 때, PHP의 json_decode 함수를 사용할 수 있습니다.
#hostingforum.kr
php
$json = '{"name":"John Doe","age":30}';
$person = json_decode($json, true);
print($person);
위 코드를 실행하면, 다음과 같은 배열이 출력됩니다.
#hostingforum.kr
php
Array
(
[name] => John Doe
[age] => 30
)
위 코드에서 json_decode 함수를 사용하면 JSON 문자열을 PHP의 배열로 변환합니다.
이러한 방법을 사용하면, PHP에서 JSON 형식의 데이터를 다루기 쉽게 할 수 있습니다.
2025-04-05 14:47