JsonSerializable::jsonSerialize
JSONにシリアル化するデータを指定します
関数: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()メソッドが1つしかなく、JSONにシリアル化する必要があるデータを返します。
jsonSerialize()メソッドでは、オブジェクトの$dataプロパティを返すだけです。
次に、 MyObjectのインスタンスを作成し、コンストラクターへの引数として連想配列を取ります。
最後に、 json_encode()関数を使用してJSON文字列としてオブジェクトをエンコードし、出力します。
結果は、 $data属性を含むJSONオブジェクトです。 {"foo":"bar","baz":"qux"} 。
オブジェクトがJSONとしてエンコードされている場合、 jsonSerialize()メソッドが自動的に呼び出され、シリアル化する必要があるデータを提供することに注意してください。これは、メソッドを手動で呼び出す必要がないことを意味します。