函式: 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()
方法會自動被呼叫,以提供需要被序列化的資料。這意味著你無需手動呼叫該方法。