Ab PHP 5.2.0 ist die JSON-Erweiterung standardmäßig in PHP integriert und kompiliert.
JSON-Serialisierungsschnittstelle JsonSerializable
Klassen, die JsonSerializable implementieren, können ihre JSON-Darstellung anpassen, wenn json_encode().
JsonSerializable::jsonSerialize – Gibt die Daten an, die in JSON serialisiert werden müssen
Beispiel #1 Gibt ein Array zurück
<?php class ArrayValue implements JsonSerializable { public function __construct(array $array) { $this->array = $array; } public function jsonSerialize() { return $this->array; } } $array = [1, 2, 3]; echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT); ?>
Die obige Routine gibt Folgendes aus:
[ 1, 2, 3 ]
Beispiel #2 Gibt ein assoziatives Array zurück
<?php class ArrayValue implements JsonSerializable { public function __construct(array $array) { $this->array = $array; } public function jsonSerialize() { return $this->array; } } $array = ['foo' => 'bar', 'quux' => 'baz']; echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT); ?>
Die obige Routine gibt Folgendes aus:
{ "foo": "bar", "quux": "baz" }
Beispiel #3 Gibt eine Ganzzahl zurück
<?php class IntegerValue implements JsonSerializable { public function __construct($number) { $this->number = (integer) $number; } public function jsonSerialize() { return $this->number; } } echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT); ?>
Die obige Routine gibt Folgendes aus:
1
Beispiel #4 Gibt eine Zeichenfolge zurück
<?php class StringValue implements JsonSerializable { public function __construct($string) { $this->string = (string) $string; } public function jsonSerialize() { return $this->string; } } echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT); ?>
Die obige Routine gibt Folgendes aus:
"Hallo!"
JSON-Funktion
json_decode – Zeichenfolgen im JSON-Format kodieren
json_encode – Variablen in JSON kodieren
json_last_error_msg – Gibt die Fehlerzeichenfolge des letzten Aufrufs von json_encode() oder json_decode() zurück
json_last_error – Gibt den zuletzt aufgetretenen Fehler zurück