Wie analysiert PHP JSON-Daten? Dieser Artikel führt Sie in die grundlegende Methode zum Parsen von JSON-Daten in PHP ein, dh in das Kodieren und Dekodieren von JSON-Daten. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
Lassen Sie uns zunächst verstehen Was ist JSON?
JSON ist ein standardmäßiges, leichtes Datenaustauschformat, das schnell und einfach analysiert und generiert werden kann.
JSON ist wie XML ein textbasiertes Format, das einfach zu schreiben und leicht zu verstehen ist, aber im Gegensatz zu XML benötigt die JSON-Datenstruktur weniger Bandbreite als die XML-Version. JSON basiert auf zwei Grundstrukturen:
Objekt: ist als Sammlung von Schlüssel/Wert-Paaren definiert (d. h. Schlüssel:Wert). Jedes Objekt beginnt mit einer öffnenden Klammer „{“ und endet mit Es endet mit einer rechten Klammer „}“, und mehrere Schlüssel/Wert-Paare werden durch Kommas "," getrennt.
Array: ist als geordnete Liste von Werten definiert. Das Array beginnt mit einer linken Klammer „[“ und endet mit einer rechten Klammer „].“ Kommas ",".
In JSON sind Schlüssel immer Zeichenfolgen und Werte können Zeichenfolge, Zahl, wahr oder falsch, null oder sogar Objekt oder Array sein. Zeichenfolgen müssen in doppelte Anführungszeichen gesetzt werden und können Escape-Zeichen wie n, t und enthalten. Ein JSON-Objekt könnte so aussehen:
{ "book": { "name": "PHP 从入门到精通", "author": "明日科技", "year": 2017, "type": "php编程", "bestseller": true } }
Und ein Beispiel für ein JSON-Array sieht so aus:
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ]}
Wie Sie sehen können, ist die Datenstruktur von JSON der von PHP sehr ähnlich Arrays. Als nächstes lernen wir, wie PHP JSON-Daten analysiert?
PHP verfügt über integrierte Funktionen, die zum Kodieren und Dekodieren von JSON-Daten verwendet werden können. Diese Funktionen sind die Funktion json_encode() und die Funktion json_decode(). Hinweis: Diese beiden Funktionen gelten nur für UTF-8-codierte Zeichenfolgendaten.
JSON-Daten in PHP kodieren
In PHP wird die Funktion json_encode() verwendet, um Werte in das JSON-Format zu kodieren. Der codierte Wert kann ein beliebiger PHP-Datentyp sein, mit Ausnahme von Ressourcen, z. B. Datenbank- oder Dateihandles. Das folgende Beispiel zeigt, wie man ein assoziatives PHP-Array in ein JSON-Objekt kodiert:
<?php // 关联数组 $marks = array("Peter"=>65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>
Die Ausgabe des obigen Beispiels sieht so aus:
Ähnlich, Sie können PHP codieren. Das Index-Array wird als JSON-Array codiert, zum Beispiel:
<?php // 索引数组 $colors = array("红", "绿", "蓝", "橙", "黄"); echo json_encode($colors); ?>
Die Ausgabe des obigen Beispiels sieht folgendermaßen aus:
Sie können die Funktion json_encode() auch mit der Option JSON_FORCE_OBJECT erzwingen. Geben Sie das PHP-Index-Array als JSON-Objekt zurück, wie im folgenden Beispiel gezeigt:
<?php // 索引数组 $colors = array("红", "绿", "蓝", "橙"); echo json_encode($colors, JSON_FORCE_OBJECT); ?>
Die Ausgabe des obigen Beispiels sieht folgendermaßen aus:
Wie im obigen Beispiel eingeführt: Ja, nicht-assoziative Arrays können als Arrays oder Objekte codiert werden. Assoziative Arrays werden jedoch immer als Objekte kodiert.
JSON-Daten mit PHP dekodieren
JSON-Daten zu dekodieren ist genauso einfach wie sie zu kodieren. Sie können die PHP-Funktion json_decode() verwenden, um eine JSON-codierte Zeichenfolge in den entsprechenden PHP-Datentyp zu konvertieren. Das folgende Beispiel zeigt, wie ein JSON-Objekt dekodiert oder in ein PHP-Objekt konvertiert wird.
<?php // 在PHP变量中存储JSON数据 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json)); ?>
Die Ausgabe des obigen Beispiels sieht folgendermaßen aus:
Standardmäßig gibt die Funktion json_decode() ein Objekt zurück. Sie können jedoch auch einen zweiten Parameter $assoc angeben, der einen booleschen Wert akzeptiert, der in ein assoziatives Array dekodiert wird, wenn das JSON-Objekt auf „true“ als Standardwert gesetzt ist. Schauen wir uns ein Beispiel an:
<?php // 在PHP变量中存储JSON数据 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json, true)); ?>
Die Ausgabe des obigen Beispiels sieht so aus:
Nun schauen wir uns noch einmal ein Beispiel an, das es Ihnen zeigt So dekodieren Sie JSON-Daten und greifen in PHP auf einzelne Elemente eines JSON-Objekts oder -Arrays zu.
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // Access values from the associative array echo $arr["Peter"]; // Output: 65 echo $arr["Harry"]; // Output: 80 echo $arr["John"]; // Output: 78 echo $arr["Clark"]; // Output: 90 // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 返回对象的访问值 echo $obj->Peter; // Output: 65 echo $obj->Harry; // Output: 80 echo $obj->John; // Output: 78 echo $obj->Clark; // Output: 90 ?>
Die Ausgabe des obigen Beispiels sieht folgendermaßen aus:
Sie können foreach() auch verwenden, um die dekodierten Daten wie folgt zu durchlaufen:
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // 通过关联数组循环 foreach($arr as $key=>$value){ echo $key . "=>" . $value . "<br>"; } echo "<hr>"; // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 通过对象循环 foreach($obj as $key=>$value){ echo $key . "=>" . $value . "<br>"; } ?>
Die Ausgabe des obigen Beispiels sieht folgendermaßen aus:
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird hilfreich sein zum Lernen aller.
Das obige ist der detaillierte Inhalt vonSo analysieren Sie JSON-Daten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!