Funktion: JsonSerializable :: JsonSerialize ()
Anwendbare Version: Php 5> = 5.4.0, Php 7
Verwendung: Die Methode JsonSerializable :: JsonSerialize () wird verwendet, um ein Objekt zu serialisieren, das die JsonSerializable -Schnittstelle implementiert. Diese Methode wird automatisch aufgerufen, wenn das Objekt im JSON -Format codiert wird.
Beispiel:
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);
Ausgabe:
{"foo":"bar","baz":"qux"}
Im obigen Beispiel definieren wir eine Klasse namens MyObject
und implementieren die JsonSerializable
-Schnittstelle. Diese Schnittstelle hat nur eine Methode jsonSerialize()
, die Daten zurückgibt, die auf JSON serialisiert werden müssen.
In jsonSerialize()
geben wir einfach $data
-Eigenschaft des Objekts zurück.
Wir erstellen dann eine Instanz von MyObject
und nehmen ein assoziatives Array als Argument für den Konstruktor.
Schließlich codieren wir das Objekt als JSON -String mit json_encode()
und geben es aus.
Das Ergebnis ist ein JSON -Objekt, das das $data
-Attribut enthält: {"foo":"bar","baz":"qux"}
.
Beachten Sie, dass jsonSerialize()
, wenn das Objekt als JSON codiert wird, automatisch aufgerufen wird, um die serialisierten Daten bereitzustellen. Dies bedeutet, dass Sie die Methode nicht manuell anrufen müssen.