JsonSerializable
JSON 序列化接口
JsonSerializable
PHP 5.4.0及以上版本
JsonSerializable是一个接口,用于让类可以自定义如何将其对象序列化为JSON格式。通过实现该接口中的方法,可以自定义类实例转换为JSON时的行为。
public function jsonSerialize();
该方法没有参数。
返回可被JSON编码的值,通常是一个数组或者对象。
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function jsonSerialize() {
return [
'name' => $this->name,
'age' => $this->age
];
}
}
$user = new User("Alice", 30);
echo json_encode($user);
在此示例中,我们定义了一个User类,并实现了JsonSerializable接口。类中的jsonSerialize方法返回一个包含用户信息(name和age)的关联数组。在通过json_encode函数将$user对象转为JSON时,jsonSerialize方法会被自动调用,返回的数组将被编码成JSON格式。