PHP-Objekte mit privaten Mitgliedern mithilfe von JSON kodieren
Beim Kodieren von PHP-Objekten in JSON können Probleme auftreten, wenn die Objekte private Mitglieder enthalten. Standardmäßig ist auf private Mitglieder außerhalb der Klasse kein Zugriff möglich.
Funktionen und private Mitglieder kodieren
Der bereitgestellte Codeausschnitt veranschaulicht eine benutzerdefinierte Kodierungsfunktion, die die Eigenschaften des Objekts durchläuft und speichert sie in einem $json-Objekt. Dieser Ansatz weist jedoch Einschränkungen auf, wenn das Objekt verschachtelte Objekte enthält.
JsonSerializable-Schnittstelle implementieren
Um diese Herausforderung zu meistern, wird empfohlen, die JsonSerializable-Schnittstelle zu implementieren. Diese Schnittstelle definiert eine Methode, jsonSerialize, mit der Sie die Daten steuern können, die serialisiert werden.
Anpassen der Serialisierung
Durch die Implementierung von jsonSerialize können Sie angeben, welche Eigenschaften sein sollen in der JSON-Darstellung enthalten. Der folgende Code zeigt, wie diese Schnittstelle implementiert und die gewünschten Daten zurückgegeben wird:
class Item implements \JsonSerializable { private $var; private $var1; private $var2; public function __construct() { // ... } public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
Verwendung von json_encode
Sobald die jsonSerialize-Methode implementiert ist, serialisiert json_encode die korrekt Objekt, einschließlich privater Mitglieder, wie in Ihrer jsonSerialize-Implementierung angegeben.
Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Objekte mit privaten Mitgliedern in JSON kodieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!