PHP
Referenzliste
json_decode
JSON-Funktionen
Befehl:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 ]] )
Parameter-Liste:
Beschreibung | |
---|---|
Der zu dekodierende json -String. | |
Wenn TRUE , werden zurückgegebene Objekte in assoziative Arrays konvertiert. | |
Benutzerspezifische Verschachtelungstiefe. |
Beschreibung:
Konvertiert eine JSON-kodierte Zeichenkette in eine PHP-Variable.
Aktiv in Version:
(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)
Hinweis:
Hinweis:
Die JSON-Spezifikation ist nicht JavaScript, aber ein Subset davon.
Tritt ein Dekodierungsfehler auf, kann json_last_error() verwendet werden, um die exakte Natur des Fehlers zu ermitteln.
Siehe auch:
Gibt die JSON-Repräsentation eines Wertes zurück
Gibt den letzten aufgetretenen Fehler zurück
json_decode() - Beispiel:
Eingabe:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
Ausgabe:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
Beschreibung:
Beschreibung | |
---|---|
Der optionale Parameter depth wurde hinzugefügt. Die Standardrekursionstiefe wurde von 128 auf 512 heraufgesetzt. |
|
5.2.3 | Die Verschachtelungsgrenze wurde von 20 auf 128 angehoben. |
json_decode() - Beispiel 2:
Eingabe:
<?php $json = '{"foo-bar": 12345}'; $obj = json_decode($json); print $obj->{'foo-bar'}; // 12345 ?>
Beschreibung:
Beschreibung | |
---|---|
Der optionale Parameter depth wurde hinzugefügt. Die Standardrekursionstiefe wurde von 128 auf 512 heraufgesetzt. |
|
5.2.3 | Die Verschachtelungsgrenze wurde von 20 auf 128 angehoben. |
json_decode() - Beispiel 3: H�ufige Fehler bei der Verwendung von json_decode()
Eingabe:
<?php // die folgenden Zeichenketten sind gültiges JavaScript aber kein gültiges JSON // der Name und der Wert müssen in doppelten Anführungszeichen eingeschlossen werden // einfache Anführungszeichen sind ungültig $bad_json = "{ 'bar': 'baz' }"; json_decode($bad_json); // null // der Name muss in doppelten Anführungszeichen eingeschlossen werden $bad_json = '{ bar: "baz" }'; json_decode($bad_json); // null // nachfolgende Kommata sind nicht erlaubt $bad_json = '{ bar: "baz", }'; json_decode($bad_json); // null ?>
Beschreibung:
Beschreibung | |
---|---|
Der optionale Parameter depth wurde hinzugefügt. Die Standardrekursionstiefe wurde von 128 auf 512 heraufgesetzt. |
|
5.2.3 | Die Verschachtelungsgrenze wurde von 20 auf 128 angehoben. |
json_decode() - Beispiel 4: Fehler bei der Verwendung von depth
Eingabe:
<?php // Daten kodieren $json = json_encode( array( 1 => array( 'englisch' => array( 'One', 'January' ), 'französisch' => array( 'Une', 'Janvier' ) ) ) ); // Errordefinitionen $json_errors = array( JSON_ERROR_NONE => 'Es ist kein Fehler aufgetreten', JSON_ERROR_DEPTH => 'Die maximale Stacktiefe wurde erreicht', JSON_ERROR_CTRL_CHAR => 'Steuerzeichenfehler, möglicherweise fehlerhaft kodiert', JSON_ERROR_SYNTAX => 'Syntaxfehler', ); // Zeige die Fehler für unterschiedliche Verschachtelungstiefen foreach(range(4, 3, -1) as $depth) { var_dump(json_decode($json, true, $depth)); echo 'Letzter Fehler : ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL; ?>
Ausgabe:
array(1) {
[1]=>
array(2) {
["English"]=>
array(2) {
[0]=>
string(3) "One"
[1]=>
string(7) "January"
}
["French"]=>
array(2) {
[0]=>
string(3) "Une"
[1]=>
string(7) "Janvier"
}
}
}
Letzter Fehler : Es ist kein Fehler aufgetreten
NULL
Letzter Fehler : Die maximale Stacktiefe wurde erreicht
[1]=>
array(2) {
["English"]=>
array(2) {
[0]=>
string(3) "One"
[1]=>
string(7) "January"
}
["French"]=>
array(2) {
[0]=>
string(3) "Une"
[1]=>
string(7) "Janvier"
}
}
}
Letzter Fehler : Es ist kein Fehler aufgetreten
NULL
Letzter Fehler : Die maximale Stacktiefe wurde erreicht
Beschreibung:
Beschreibung | |
---|---|
Der optionale Parameter depth wurde hinzugefügt. Die Standardrekursionstiefe wurde von 128 auf 512 heraufgesetzt. |
|
5.2.3 | Die Verschachtelungsgrenze wurde von 20 auf 128 angehoben. |
JSON-Funktionen