函数: JsonSerializable::jsonSerialize()
适用版本: PHP 5 >= 5.4.0, PHP 7
用法: JsonSerializable::jsonSerialize() 方法用于序列化一个实现了 JsonSerializable 接口的对象。当对象被编码为 JSON 格式时,该方法会被自动调用。
示例:
class MyObject implements JsonSerializable {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function jsonSerialize() {
return $this->data;
}
}
$obj = new MyObject(array('foo' => 'bar', 'baz' => 'qux'));
echo json_encode($obj);
输出:
{"foo":"bar","baz":"qux"}
在上面的示例中,我们定义了一个名为 MyObject
的类,并实现了 JsonSerializable
接口。该接口只有一个方法 jsonSerialize()
,用于返回需要被序列化为 JSON 的数据。
在 jsonSerialize()
方法中,我们简单地返回了对象的 $data
属性。
然后,我们创建了一个 MyObject
的实例,并将一个关联数组作为构造函数的参数。
最后,我们使用 json_encode()
函数将该对象编码为 JSON 字符串,并将其输出。
结果是一个包含了 $data
属性的 JSON 对象: {"foo":"bar","baz":"qux"}
。
请注意,当对象被编码为 JSON 时,jsonSerialize()
方法会自动被调用,以提供需要被序列化的数据。这意味着你无需手动调用该方法。