查詢

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函式
分享連結