English | 简体中文 | 繁體中文
查询

JsonSerializable::jsonSerialize()函数—用法及示例

「 序列化一个实现了 JsonSerializable 接口的对象 」


函数: 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() 方法会自动被调用,以提供需要被序列化的数据。这意味着你无需手动调用该方法。

补充纠错
上一个函数: json_decode()函数
下一个函数: jpeg2wbmp()函数
热门PHP函数
分享链接