Heim > Artikel > Backend-Entwicklung > Konvertierung zwischen PHP-Array und Json
Der Grund, warum Json verwendet wird, liegt häufig in der Dateninteraktion zwischen dem Programm und der JS-Funktion bei Verwendung des Ajax-Objekts. Da JS in PHP keine Arrays erkennt, erkennt PHP in JS keine Arrays oder Objekte. Json löst dieses Problem sehr gut.
Json-Einführung
JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat. Es basiert auf einer Teilmenge von JavaScript, was bedeutet, dass JavaScript Json direkt lesen kann, was sehr praktisch ist. Die spezifische Form von
Json ist:
1. Objekt
Das Objekt ist eine ungeordnete Sammlung von „Name/Wert“-Paaren. Ein Objekt beginnt mit „{“ (linke Klammer) und endet mit „}“ (rechte Klammer). Auf jeden „Namen“ folgt ein „:“ (Doppelpunkt); „Name/Wert“-Paare werden durch ein „“, (Komma) getrennt.
Zum Beispiel: {"Benutzername": "Eric", "Alter":23, "Geschlecht": "Mann"🎜>
Codebeispiel:? Code JAVASCRIPT anzeigen
<script type="text/javascript"> function getUser() { var user = { "username": "Eric", "age":23, "family": {"mother":"Marry","father":"Alon","brother":"Tom"} }; alert( user.username ); alert( user.age ); alert(user.family.brother); } getUser(); </script>2. Ein Array ist eine geordnete Sammlung von Werten. Ein Array beginnt mit „[“ (linke Klammer) und endet mit „]“ (rechte Klammer). Werte werden durch "," (Komma) getrennt. Zum Beispiel: ["Eric",23, "man"]Codebeispiel:
?
Code PHP anzeigenHinweis: Die beiden Formen von Objekten und Arrays werden in JS unterschiedlich aufgerufen. Objekte werden mit „.“ und Arrays mit den Indizes [0] und [1] aufgerufen. Beachten Sie außerdem, dass String-Typwerte beim Übergeben von Json-Strings in Anführungszeichen gesetzt werden müssen.
<script type="text/javascript"> function getArray() { var arr = ["Jarry",23, ["www.xiaophper.com","wxyh_999@126.com"]]; alert(arr[0]); alert(arr[1]); alert(arr[2][0]); alert(arr[2][1]); } getArray(); </script>Array in Json in PHP konvertieren
Leistungsstarkes PHP bietet bereits integrierte Funktionen: json_encode() und json_decode(). Es ist leicht zu verstehen, dass json_encode() ein PHP-Array in Json konvertiert. Im Gegenteil, json_decode() konvertiert Json in ein PHP-Array.
Zum Beispiel:
?
Code PHP anzeigenDas Programm druckt Folgendes aus: {"name":"Eric"," Alter" :23}
$array = array("name" => "Eric","age" => 23); echo json_encode($array);Sehen Sie sich das folgende Beispiel noch einmal an:
?
Code PHP anzeigenDas Programm druckt aus: [ „Eric“, 23]
Wie aus den beiden obigen Beispielen hervorgeht, gibt json_encode() einen JSON in Form eines Arrays zurück, wenn die Schlüssel des PHP-Arrays alle sind Array sind alle Strings. Dann gibt json_encode() Json in Form eines Objekts zurück. Ich habe es gerade gesagt. Die beiden Aufrufe in js sind unterschiedlich.$array = array(0 => "Eric", 1 => 23); echo json_encode($array);Solange der Schlüssel des PHP-Arrays einen Schlüssel in Form einer Zeichenfolge enthält, gibt json_encode() Json in Form eines Objekts zurück. Das ist falsch. Denn obwohl im PHP-Code keine Fehler auftreten, wenn ein solcher Json an eine JS-Funktion übergeben wird, behandelt JS den Json als Objekt und es ist für ein Objekt unmöglich, Zahlen als Attributnamen zu verwenden. Mit anderen Worten, JS weiß nicht, was das ist: user.0.username (die Mitte ist die Zahl Null)
Nachdruck von: http://www.cnblogs.com/xmphoenix/archive/2011/ 26.05.2057963.html