Heim  >  Artikel  >  php教程  >  Detailliertes Beispiel für die PHP-Serialisierung und JSON-Analyse

Detailliertes Beispiel für die PHP-Serialisierung und JSON-Analyse

黄舟
黄舟Original
2016-12-14 10:15:541153Durchsuche

JSON basiert auf der Programmiersprache JavaScript, einer Teilmenge des Standards ECMA-262, 3. Ausgabe – Dezember 1999. JSON verwendet ein völlig sprachunabhängiges Textformat, verwendet aber auch Konventionen ähnlich der C-Sprachfamilie (einschließlich C, C++, C#, Java, JavaScript, Perl, Python usw.). Diese Eigenschaften machen JSON zu einer idealen Datenaustauschsprache.

JSON besteht aus zwei Strukturen:

Eine Sammlung von Name/Wert-Paaren. In verschiedenen Sprachen wird es als Objekt, Datensatz, Struktur, Wörterbuch, Hash-Tabelle, verschlüsselte Liste oder assoziatives Array verstanden.

Eine geordnete Liste von Werten. In den meisten Sprachen wird es als Array verstanden.

PHPs Serialisierung dient dazu, Variablen zu serialisieren und einen String-Ausdruck mit Variablentyp und -struktur zurückzugeben.
Apropos, beide verkörpern eine Datenstruktur in Form eines Strings. Was ist also der Unterschied zwischen ihnen? .

Beginnen wir mit JSON und schauen uns ein einfaches Beispiel an.

Beispiel 1:

var test = {"Name":"Peter", "Alter":20}; document.write(test.Name + ": " + test.Age) ; Ergebnisse anzeigen:

Peter: 20

{"Name":"Peter", "Alter":20} in der Variable test ist ein Objekt mit 2 Elementen (es fühlt sich an wie ein PHP-Array). ):
Name ist Peter, Alter ist 20.

Natürlich kann es komplizierter werden.

Beispiel 2:

var test = {"Benutzer":{"Name":"Peter", "Alter":20}, "Firma": "FORD"}; write(test.User.Name + ": " + test.Company); Ergebnisse anzeigen:

Peter: FORD In diesem Beispiel enthält das User-Element Name und Age.

Wenn Sie mehrere Benutzer widerspiegeln möchten, müssen Sie ein Array verwenden. Anders als „{}“ des Objekts verwendet das Array „[]“.

JSON-Parsing-Beispiel drei:

var test = [                                                                                                               ,                {"Benutzer":{"Name":"Li Ming", "Alter":20}, "Firma": "Benz "}                                                                                                                                                                                                                                        seit test[1].Company); //Oder verwenden: document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]); JSON-Parsing-Anzeige Ergebnis:

Li Ming: Benz

Durch das obige einfache Beispiel können einige komplexe Daten über eine Zeichenfolge übertragen werden, und dies ist in der Tat viel praktischer, wenn es mit Ajax kombiniert wird.
Werfen wir einen Blick auf die Rolle der Serialisierungsfunktion von PHP.

JSON-Parsing-Beispiel 4:

$arr = array ( 20 ), ‘ Li Ming'=> array ( ) 'Country'=>'CHINA', 'Age'=> ;21 ); $serializeserialize_var = serialize($arr); echo $serial ize_var; JSON-Parsing-Anzeigeergebnisse:

a:2:{s:5:"Peter";a:2:{s:7 :"Land";s:3:"USA";s:3:"Alter";i:20;}s :7:"Li Ming";a:2:{s:7:"Land";s: 5:"CHINA";s:3:"Age";i:21;}} Dieses Ergebnis sieht besser aus als JSON. Es ist etwas kompliziert, aber eigentlich sehr einfach. Es erklärt nur einige Datentypen und -strukturen.
Nehmen Sie a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;} als Beispiel:

a: 2 Es bedeutet, dass es sich um ein Array mit zwei Elementen handelt: s:7:"Country";s:3:"USA" ist das erste Element. s:7 bedeutet, dass es sich um eine Zeichenfolge handelt i:20; sollte ebenfalls eine Ganzzahl (Ganzzahl) 20 sein.

Schauen wir uns dieses Beispiel noch einmal an,

Beispiel 5:

class test { var $var = 0; function add(){ echo $var+10 } } $unserialize_var = new test; unserialize_var = unserialize($serialize_var); $unserialize_var->add(); Ergebnisse anzeigen:

O:4:"test":1:{s:3:"var";i:0;}

10

Wie aus diesem Beispiel hervorgeht, speichert die Serialisierung sowohl den Typ als auch die Struktur der Daten.
Die Variablen können nach der Deserialisierung weiterhin die Methode add() verwenden.

Besteht also ein Zusammenhang zwischen PHP und JSON? Freunde, die mit PHP vertraut sind, sollten wissen, dass PHP5.2.0 die JSON-Erweiterung als Standardkomponente festgelegt hat, was bedeutet, dass wir JSON-Operationen in PHP ausführen können Funktionen sind json_encode und json_decode.

Beispiel 6:

$arr = array ( 'Name'=>'Peter', 'Age'=>20 ); $jsonencode = json_encode($arr); jsonencode;
Anzeigeergebnis:

{"Name":"Peter", "Alter":20}

Dieses Ergebnis ist dasselbe wie der Testwert in Beispiel 1. Verwenden Sie json_encode zum Konvertieren von Variablen in PHP in JSON-Zeichen aus Ausdrücken.
Werfen wir einen Blick auf die Verwendung von json_decode.

Beispiel 7:

$var = '{"Name":"Peter","Alter":20}'; $jsondecode = json_decode($var); print_r($jsondecode) ; Ergebnisse anzeigen:

stdClass Object ( [Name] => Peter [Age] => 20 ) Dies ist tatsächlich bestätigt, dass in JSON {"Name": "Peter", "Age":20 } ist ein Objekt, kann aber auch in PHP in ein Array umgewandelt werden, indem der ASSOC-Parameter in json_decode auf True gesetzt wird.
Beispiel 8:

$var = '{"Name":"Peter","Alter":20}'; $jsondecode = json_decode($var,true); print_r($jsondecode); Ergebnisse anzeigen:

Array ( [Name] => Peter [Alter] => 20 ) Darüber hinaus ist zu beachten, dass JSON auf dem Unicode-Format basiert und daher für die Ausführung chinesischer Operationen erforderlich ist in UTF-8-Formate konvertiert. Durch die oben genannten Beispiele glaube ich, dass jeder ein vorläufiges Verständnis der Serialisierung und json_encode von JSON und PHP hat. Durch die Kombination von PHP, Javascript, JSON und Ajax können leistungsstarke Dateninteraktionsfunktionen abgeschlossen werden.

Vielen Dank fürs Lesen, weitere verwandte Bitte zahlen Beachten Sie für den Inhalt die chinesische PHP-Website (www.php.cn)!

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