Heim  >  Artikel  >  Backend-Entwicklung  >  Konvertierung zwischen PHP-Array und Json

Konvertierung zwischen PHP-Array und Json

WBOY
WBOYOriginal
2016-08-08 09:27:341268Durchsuche

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 anzeigen

Hinweis: 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 anzeigen

Das 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 anzeigen

Das 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

Das Obige stellt die Konvertierung zwischen PHP-Arrays und Json vor, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn