首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

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

发布于 2025-04-28 17:59:40
0
22

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

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流