PHP
Referenzliste
json_encode
JSON-Funktionen
Befehl:
string json_encode ( mixed $value [, int $options = 0 ] )
Parameter-Liste:
Beschreibung | |
---|---|
Der zu kodierende value . Kann von jedem Typ außer Ressource sein.Diese Funktion arbeitet nur mit UTF-8-kodierten Daten. | |
Bitmaske bestehend aus JSON_HEX_QUOT , JSON_HEX_TAG , JSON_HEX_AMP , JSON_HEX_APOS , JSON_NUMERIC_CHECK , JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , JSON_FORCE_OBJECT , JSON_PRESERVE_ZERO_FRACTION , JSON_UNESCAPED_UNICODE . Standardmäßig auf 0 gesetzt. |
Beschreibung:
Gibt eine Zeichenkette zurück, die die JSON-Darstellung von
value
beinhaltet. Aktiv in Version:
(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)
Hinweis:
Falls ein Fehler beim kodieren auftritt, kann json_last_error() verwendet werden, um die genaue Ursache des Fehlers festzustellen.
Wenn ein Array kodiert wird werden alle Schlüssel als Strings kodiert und für alle Schlüssel-Wert-Paare explizit angegeben, wenn die Schlüssel keine kontinuierliche aufsteigende Sequenz sind die bei 0 beginnt.
Wie der Referenz JSON-Encoder gibt auch json_encode() einen einfachen Wert (also weder ein Objekt noch ein Array) aus, wenn ein String, Integer, Float oder Boolean als Eingabe für value übergeben wird. Während die meisten Decoder diese Werte als gültiges JSON akzeptieren könnte es einige geben die dies ablehnen, da die Spezifikationen in diesem Punkt mehrdeutig sind.
Um zusammenzufassen: Prüfen Sie immer, ob ihr JSON-Decoder die Ausgabe, die Sie mittels json_encode() erzeugen, verarbeiten kann.
Wenn ein Array kodiert wird werden alle Schlüssel als Strings kodiert und für alle Schlüssel-Wert-Paare explizit angegeben, wenn die Schlüssel keine kontinuierliche aufsteigende Sequenz sind die bei 0 beginnt.
Wie der Referenz JSON-Encoder gibt auch json_encode() einen einfachen Wert (also weder ein Objekt noch ein Array) aus, wenn ein String, Integer, Float oder Boolean als Eingabe für value übergeben wird. Während die meisten Decoder diese Werte als gültiges JSON akzeptieren könnte es einige geben die dies ablehnen, da die Spezifikationen in diesem Punkt mehrdeutig sind.
Um zusammenzufassen: Prüfen Sie immer, ob ihr JSON-Decoder die Ausgabe, die Sie mittels json_encode() erzeugen, verarbeiten kann.
Siehe auch:
Dekodiert eine JSON-Zeichenkette
Gibt den letzten aufgetretenen Fehler zurück
Erzeugt eine speicherbare Repräsentation eines Wertes.
json_encode() - Beispiel:
Eingabe:
<?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>
Ausgabe:
{"a":1,"b":2,"c":3,"d":4,"e":5}
Beschreibung:
Beschreibung | |
---|---|
5.6.6 | Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt. |
5.5.0 | Der Parameter depth wurde hinzugefügt. |
5.4.0 | JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt. |
5.3.3 | JSON_NUMERIC_CHECK für options wurde hinzugefügt. |
Der optionale Parameter option wurde hinzugefügt. |
|
5.2.1 | Unterstützung für JSON-kodierte Grundtypen hinzugefügt. |
json_decode() - Beispiel 2: das den Einsatz aller Optionen zeigt
Eingabe:
<?php $a = array('<foo>',"'bar'",'"baz"','&blong&'); echo "Normal: ", json_encode($a), "\n"; echo "Tags: ", json_encode($a,JSON_HEX_TAG), "\n"; echo "Apos: ", json_encode($a,JSON_HEX_APOS), "\n"; echo "Quot: ", json_encode($a,JSON_HEX_QUOT), "\n"; echo "Amp: ", json_encode($a,JSON_HEX_AMP), "\n"; echo "All: ", json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP), "\n\n"; $b = array(); echo "Ausgabe eines leeren Arrays als Array: ", json_encode($b), "\n"; echo "Ausgabe eines leeren Arrays als Objekt: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n"; $c = array(array(1,2,3)); echo "Ausgabe eines nichtassoziativen Arrays als Array: ", json_encode($c), "\n"; echo "Ausgabe eines nichtassoziativen Arrays als Objekt: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n"; ?>
Ausgabe:
Normal: ["<foo>","'bar'","\"baz\"","&blong&"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&"]
Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&"]
Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&"]
Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]
Ausgabe eines leeren Arrays als Array: []
Ausgabe eines leeren Arrays als Objekt: {}
Ausgabe eines nichtassoziativen Arrays als Array: [[1,2,3]]
Ausgabe eines nichtassoziativen Arrays als Objekt: {"0":{"0":1,"1":2,"2":3}}
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&"]
Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&"]
Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&"]
Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]
Ausgabe eines leeren Arrays als Array: []
Ausgabe eines leeren Arrays als Objekt: {}
Ausgabe eines nichtassoziativen Arrays als Array: [[1,2,3]]
Ausgabe eines nichtassoziativen Arrays als Objekt: {"0":{"0":1,"1":2,"2":3}}
Beschreibung:
Beschreibung | |
---|---|
5.6.6 | Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt. |
5.5.0 | Der Parameter depth wurde hinzugefügt. |
5.4.0 | JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt. |
5.3.3 | JSON_NUMERIC_CHECK für options wurde hinzugefügt. |
Der optionale Parameter option wurde hinzugefügt. |
|
5.2.1 | Unterstützung für JSON-kodierte Grundtypen hinzugefügt. |
json_decode() - Beispiel 3: JSON_NUMERIC_CHECK-Option-Beispiel
Eingabe:
<?php echo "Zeichenketten, die Zahlen repräsentieren, die automatisch in Zahlen gewandelt wurden".PHP_EOL; $numbers = array('+123123', '-123123', '1.2e3', '0.00001'); var_dump( $numbers, json_encode($numbers, JSON_NUMERIC_CHECK) ); echo "Zeichenketten, die unsachgemäss formartierte Zahlen enthalten".PHP_EOL; $strings = array('+a33123456789', 'a123'); var_dump( $strings, json_encode($strings, JSON_NUMERIC_CHECK) ); ?>
Ausgabe:
Zeichenketten, die Zahlen repr�sentieren, die automatisch in Zahlen gewandelt wurden
array(4) {
[0]=>
string(7) "+123123"
[1]=>
string(7) "-123123"
[2]=>
string(5) "1.2e3"
[3]=>
string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Zeichenketten, die unsachgem�ss formartierte Zahlen enthalten
array(2) {
[0]=>
string(13) "+a33123456789"
[1]=>
string(4) "a123"
}
string(24) "["+a33123456789","a123"]"
array(4) {
[0]=>
string(7) "+123123"
[1]=>
string(7) "-123123"
[2]=>
string(5) "1.2e3"
[3]=>
string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Zeichenketten, die unsachgem�ss formartierte Zahlen enthalten
array(2) {
[0]=>
string(13) "+a33123456789"
[1]=>
string(4) "a123"
}
string(24) "["+a33123456789","a123"]"
Beschreibung:
Beschreibung | |
---|---|
5.6.6 | Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt. |
5.5.0 | Der Parameter depth wurde hinzugefügt. |
5.4.0 | JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt. |
5.3.3 | JSON_NUMERIC_CHECK für options wurde hinzugefügt. |
Der optionale Parameter option wurde hinzugefügt. |
|
5.2.1 | Unterstützung für JSON-kodierte Grundtypen hinzugefügt. |
json_decode() - Beispiel 4: Beispiel f�r sequentielle und nicht sequentielle Arrays
Eingabe:
<?php echo "Sequentielles Array".PHP_EOL; $sequential = array("foo", "bar", "baz", "blong"); var_dump( $sequential, json_encode($sequential) ); echo PHP_EOL."Nicht sequentielles Array".PHP_EOL; $nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong"); var_dump( $nonsequential, json_encode($nonsequential) ); echo PHP_EOL."Sequentielles Array mit einem entfernten Schlüssel".PHP_EOL; unset($sequential[1]); var_dump( $sequential, json_encode($sequential) ); ?>
Ausgabe:
Sequentielles Array
array(4) {
[0]=>
string(3) "foo"
[1]=>
string(3) "bar"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"
Nicht sequentielles Array
array(4) {
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
[3]=>
string(3) "baz"
[4]=>
string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"
Sequentielles Array mit einem entfernten Schl�ssel
array(3) {
[0]=>
string(3) "foo"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"
array(4) {
[0]=>
string(3) "foo"
[1]=>
string(3) "bar"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"
Nicht sequentielles Array
array(4) {
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
[3]=>
string(3) "baz"
[4]=>
string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"
Sequentielles Array mit einem entfernten Schl�ssel
array(3) {
[0]=>
string(3) "foo"
[2]=>
string(3) "baz"
[3]=>
string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"
Beschreibung:
Beschreibung | |
---|---|
5.6.6 | Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt. |
5.5.0 | Der Parameter depth wurde hinzugefügt. |
5.4.0 | JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt. |
5.3.3 | JSON_NUMERIC_CHECK für options wurde hinzugefügt. |
Der optionale Parameter option wurde hinzugefügt. |
|
5.2.1 | Unterstützung für JSON-kodierte Grundtypen hinzugefügt. |
json_decode() - Beispiel 5: JSON_PRESERVE_ZERO_FRACTION-Option-Beispiel
Eingabe:
<?php var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION)); var_dump(json_encode(12.0)); ?>
Ausgabe:
string(4) "12.0"
string(2) "12"
string(2) "12"
Beschreibung:
Beschreibung | |
---|---|
5.6.6 | Die JSON_PRESERVE_ZERO_FRACTION option wurde hinzugefügt. |
5.5.0 | Der Parameter depth wurde hinzugefügt. |
5.4.0 | JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , und JSON_UNESCAPED_UNICODE für options wurden hinzugefügt. |
5.3.3 | JSON_NUMERIC_CHECK für options wurde hinzugefügt. |
Der optionale Parameter option wurde hinzugefügt. |
|
5.2.1 | Unterstützung für JSON-kodierte Grundtypen hinzugefügt. |
JSON-Funktionen