English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen Sie, wie Sie JSON-Daten in PHP codieren und decodieren.
JSON-Darstellung JavaScript Object Notation. JSON ist ein standardisiertes leichtes Datenübertragungsformat, das schnell und einfach zu analysieren und zu generieren ist.
JSON und XML sind beide textbasierte Formate, die für Menschen und Computer leicht zu schreiben und zu verstehen sind, aber im Gegensatz zu XML nimmt die Datenstruktur von JSON weniger Bandbreite ein. JSON basiert auf zwei grundlegenden Strukturen:
Objekt:Dies wird als Schlüssel definiert/Sammlung von Wertpaaren (d.h. key:value). Jedes Objekt beginnt mit einem linken eckigen Klammern { und endet mit einem rechten eckigen Klammern }./Wertpaare werden durch Kommas getrennt,.
Array:definiert als geordnete Liste von Werten. Ein Array beginnt mit einem linken Klammern und endet mit einem rechten Klammern []. Werte werden durch Kommas getrennt,.
In JSON sind die Schlüssel immer Zeichenfolgen, und der Wert kann seinstring,number,trueoderfalse,nullsogarobjectoderarrayDie Zeichenkette muss in doppelte Anführungszeichen (" ") eingeschlossen sein und kann Escape-Zeichen wie \n, \t und \ enthalten. Ein JSON-Objekt könnte wie folgt aussehen:
{ "book": { "name": "Harry Potter and the Goblet of Fire", "author": "J. K. Rowling", "year": 2000, "genre": "Fantasy Fiction", "bestseller": true } }
Ein Beispiel für ein JSON-Array ist wie folgt gezeigt:
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
Hinweis:Datenübertragungsformat ist ein Textformat, das zum Austausch oder Austausch von Daten zwischen verschiedenen Plattformen und Betriebssystemen verwendet wird. JSON ist das beliebteste und leichteste Datenübertragungsformat in Webanwendungen.
Die JSON-Datenstruktur ist sehr ähnlich zu PHP-Arrays. PHP verfügt über eingebaute Funktionen zum Kodieren und Dekodieren von JSON-Daten. Diese Funktionen sind json_encode() und json_decode(). Diese beiden Funktionen sind nur für UTF-8kodierte Zeichenkettendaten.
Die Funktion json_encode() in PHP wird verwendet, um Werte in JSON-Format zu kodieren. Der zu kodierende Wert kann jeder sein, außer Ressourcen.PHP-Datentypenz.B. Datenbanken oder Dateihandles. Der folgende Beispiel zeigt, wie manPHP-assoziative ArraysKodiert als JSON-Objekt:
<?php //Assoziative $marks = array("Peter"=>65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>Testen sehen‹/›
Die Ausgabe des obigen Beispiels wird wie folgt aussehen:
{"Peter":65,"Harry":80,"John":78,"Clark":90}
Gleichzeitig können SiePHP-Indizeswie folgt kodiert als JSON-Array:
<?php //Indizes $colors = array("Rot", "Grün", "Blau", "Orange", "Gelb"); echo json_encode($colors); ?>Testen sehen‹/›
Die Ausgabe des obigen Beispiels wird wie folgt aussehen:
["Rot","Grün","Blau","Orange","Gelb"]
Sie können auch die Option JSON_FORCE_OBJECT verwenden, um die Funktion json_encode() zu zwingen, PHP-Indizes als JSON-Objekt zurückzugeben, wie im folgenden Beispiel gezeigt:
<?php //Indizes $colors = array("Rot", "Grün", "Blau", "Orange", "Gelb"); echo json_encode($colors, JSON_FORCE_OBJECT); ?>Testen sehen‹/›
Die Ausgabe des obigen Beispiels wird wie folgt aussehen:
{"0":"Rot","1":"Grün","2":"Blau","3":"Orange"}
Wie Sie im obigen Beispiel sehen können, können nicht-assoziierte Arrays als Array oder Objekt kodiert werden. Allerdings werden assoziative Arrays immer als Objekt kodiert.
Die Dekodierung von JSON-Daten ist so einfach wie die Kodierung. Sie können die Funktion json_decode() in PHP verwenden, um eine JSON-kodierte Zeichenkette in den angemessenen PHP-Datentyp umzuwandeln. Der folgende Beispiel zeigt, wie man JSON-Objekte dekodiert oder inPHP-Objekt。
<?php //JSON-Daten in einer PHP-Variablen speichern $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json)); ?>Testen sehen‹/›
Die Ausgabe des obigen Beispiels ist wie folgt:
object(stdClass)#1 (4) { ["Peter"]=> int(65) ["Harry"]=> int(8) ["John"]=> int(78) ["Clark"]=> int(90) }
Standardmäßig gibt die Funktion json_decode() ein Objekt zurück. Sie können jedoch den zweiten Parameter $assoc angeben, der einen Boolean-Wert annimmt. Wenn auf true gesetzt, wird das JSON-Objekt in ein assoziatives Array dekodiert. Standardmäßig ist dieser Wert false. Hier ist ein Beispiel:}}
<?php //JSON-Daten in einer PHP-Variablen speichern $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json, true)); ?>Testen sehen‹/›
Die Ausgabe des obigen Beispiels ist wie folgt:
array(4) { ["Peter"]=> int(65) ["Harry"]=> int(8) ["John"]=> int(78) ["Clark"]=> int(90) }
Nun schauen wir uns ein Beispiel an, das Ihnen zeigt, wie Sie JSON-Daten dekodieren und die verschiedenen Elemente eines JSON-Objekts oder Arrays in PHP aufrufen.
<?php //JSON-kodierten String der PHP-Variablen zuweisen $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; //Dekodiere JSON-Daten in ein assoziatives PHP-Array $arr = json_decode($json, true); //Werte aus einem assoziativen Array abrufen echo $arr["Peter"]; //Ausgabe: 65 echo $arr["Harry"]; //Ausgabe: 80 echo $arr["John"]; //Ausgabe: 78 echo $arr["Clark"]; //Ausgabe: 90 //Dekodiere JSON-Daten in ein PHP-Objekt $obj = json_decode($json); //Werte aus dem zurückgegebenen Objekt abrufen echo $obj;->Peter; //Ausgabe: 65 echo $obj;->Harry; //Ausgabe: 80 echo $obj;->John; //Ausgabe: 78 echo $obj;->Clark; //Ausgabe: 90 ?>Testen sehen‹/›
Sie können auchforeach()Durchlaufe das dekodierte Daten, wie folgt:
<?php //JSON-kodierten String der PHP-Variablen zuweisen $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; //Dekodiere JSON-Daten in ein assoziatives PHP-Array $arr = json_decode($json, true); //Durchlaufe ein assoziatives Array foreach($arr as $key=>$value){ echo $key . "=>" . $value . "<br>"; } echo "<hr>"; //Dekodiere JSON-Daten in ein PHP-Objekt $obj = json_decode($json); //Durchlaufe das Objekt foreach($obj as $key => $value){ echo $key . "=>" . $value . "<br>"; } ?>Testen sehen‹/›
JSON-Objekte und -Arrays können auch eingebettet sein. JSON-Objekte können beliebige andere JSON-Objekte, Arrays, eingebettete Arrays, Array-Arrays von JSON-Objekten und mehr enthalten. Der folgende Beispiel zeigt Ihnen, wie Sie eingebettete JSON-Objekte dekodieren und alle Werte in PHP ausgeben.
<?php //Definiere eine rekursive Funktion, um eingebettete Werte zu extrahieren function printValues($arr) { global $count; global $values; //Überprüfe, ob die Eingabe ein Array ist if(!is_array($arr)){ die("Fehler: Der Eingabe ist kein Array"); } /* Durchlaufe das Array, wenn value selbst ein Array ist, wird rekursiv aufgerufen Die Funktion fügt die gefundenen Werte zum Ausgabearray hinzu und für jeden gefundenen Wert den Zähler erhöhen1 */ foreach($arr as $key=>$value){ if(is_array($value)){ printValues($value); } else{ $values[] = $value; $count++; } } // Totalzahl und Werte, die im Array gefunden wurden, zurückgeben return array('total' => $count, 'values' => $values); } //JSON-kodierten String der PHP-Variablen zuweisen $json = '{ "book": { "name": "Harry Potter and the Goblet of Fire", "author": "J. K. Rowling", "year": 2000, "characters": ["Harry Potter", "Hermione Granger", "Ron Weasley"], "genre": "Fantasy Fiction", "price": { "paperback": "$10.40", "hardcover": "$20.32", "kindle": "4.11" } } }'; //JSON-Daten in PHP-Assoziations-Array-Format decodieren $arr = json_decode($json, true); //Diese Funktion aufrufen und alle Werte ausgeben $result = printValues($arr); echo "<h3>" . $result["total"] . " value(s) found: </h3>"; echo implode("<br>", $result["values"]); echo "<hr>"; //Werte ausgeben echo $arr["book"]["author"] . "<br>"; //Ausgabe: J. K. Rowling echo $arr["book"]["characters"][0] . "<br>"; //Ausgabe: Harry Potter echo $arr["book"]["price"]["hardcover"]; //Ausgabe: $20.32 ?>Testen sehen‹/›