Heim > php教程 > PHP开发 > Anwendung von JSON in PHP

Anwendung von JSON in PHP

黄舟
Freigeben: 2016-12-14 10:17:45
Original
1191 Leute haben es durchsucht

Im heutigen Internet ist AJAX kein unbekanntes Wort mehr. Wenn man von AJAX spricht, fällt einem vielleicht sofort XML ein, das durch RSS entstanden ist. XML-Parsing ist wahrscheinlich kein Problem mehr, insbesondere mit PHP5 und dem Aufkommen einer großen Anzahl von XML-Parsern, wie beispielsweise dem leichtesten SimpleXML. Bei AJAX ist die XML-Analyse jedoch eher auf die Unterstützung von Front-End-Javascript ausgerichtet. Ich denke, jeder, der XML analysiert hat, wird von Bäumen und Knoten verwirrt sein. Es ist unbestreitbar, dass XML eine sehr gute Methode zur Datenspeicherung ist, aber seine Flexibilität erschwert die Analyse. Natürlich bezieht sich die hier erwähnte Schwierigkeit auf den Protagonisten dieses Artikels – JSON.

Was ist JSON? Ich werde das Konzept nicht wiederholen. Laienhaft ausgedrückt handelt es sich um ein Datenspeicherformat, genau wie eine PHP-serialisierte Zeichenfolge. Es handelt sich um eine Datenbeschreibung. Wenn wir beispielsweise ein Array serialisieren und speichern, kann es problemlos deserialisiert und angewendet werden. Das Gleiche gilt für JSON, mit der Ausnahme, dass es eine interaktive Brücke zwischen clientseitigem Javascript und serverseitigem PHP baut. Wir verwenden PHP, um die JSON-Zeichenfolge zu generieren, und übergeben diese dann an das Front-End. Javascript kann sie problemlos in JSON konvertieren und dann anwenden. Um es einfach auszudrücken: Es sieht wirklich wie ein Array aus.

Zurück zum Geschäft, wie man JSON verwendet. PHP5.2 verfügt über integrierte Unterstützung für JSON. Wenn es niedriger als diese Version ist, gibt es natürlich viele PHP-Versionsimplementierungen auf dem Markt. Verwenden Sie einfach die gewünschte Version. Jetzt sprechen wir hauptsächlich über die integrierte JSON-Unterstützung von PHP. Sehr einfach, zwei Funktionen: json_encode und json_decode (sehr ähnlich der Serialisierung). Eine zum Kodieren und eine zum Dekodieren. Schauen wir uns zunächst die Verwendung der Kodierung an:

$arr = array(
'name' => 'Chen Yixin',
'nick' => Empty',
'contact' => array(
'email' => 'shenkong at qq dot com',
'website' => 'http://www.chinaz.com ',
)
);
$json_string = json_encode($arr);
echo $json_string;

Es ist sehr einfach Das Array ist JSON. Es sollte darauf hingewiesen werden, dass chinesische Zeichen bei Nicht-UTF-8-Codierung nicht codiert werden können und das Ergebnis null ist. Wenn Sie daher gb2312 zum Schreiben von PHP-Code verwenden, müssen Sie iconv oder mb verwenden, um den enthaltenen Inhalt zu konvertieren Chinesisch in UTF-8 ist dann json_encoded, und die obigen Ausgabeergebnisse lauten wie folgt:

{"name":u9648u6bc5u946b",nick":u6df1u7a7a",contact":{"email": „shenkong at qq dot com“, „website“: „http://www.chinaz.com“}}

Ich habe Ihnen gesagt, dass es der Serialisierung sehr ähnlich ist, aber Sie glauben es immer noch nicht. Nach der Codierung muss PHP die entsprechende Funktion json_decode bereitstellen. Die Operation lautet wie folgt:

$arr = array (
'name' => 'Chen Yixin',
'nick' => 'Deep Sky',
'contact' => array(
'email' => ' shenkong at qq dot com' ,
'website' => 'http://www.chinaz.com',
) )
);
$obj = json_decode ($json_string);
print_r($obj>?>)

Können Sie auf die Eigenschaften im Objekt zugreifen? $obj->name, natürlich können Sie es auch in ein Array konvertieren, um es einfach aufzurufen:

$json_string = json_encode($arr); $obj = json_decode($json_string );

$arr = (array) $obj;  

print_r($arr); Zeichen:



Weisen Sie oben diese Zeichenfolge direkt einer Variablen zu, und sie wird zu einem Javascript-Array (der Fachbegriff sollte nicht Array heißen, aber aufgrund der PHP-Gewohnheiten werde ich sie zum leichteren Verständnis immer Array nennen) ). Auf diese Weise können Sie arr problemlos durchqueren oder tun, was Sie wollen. Ich habe AJAX noch nicht erwähnt, oder? Ja, denken Sie darüber nach: Wenn der vom Server zurückgegebene Antworttext eine JSON-Zeichenfolge anstelle von XML verwendet, wäre es dann nicht sehr praktisch für das Front-End-Javascript, ihn zu verarbeiten? So wird Hundehautpflaster angewendet.

Während ich dies schreibe, gibt es tatsächlich keinen großen Unterschied zwischen JSON und XML, abgesehen von den unterschiedlichen Datenspeicherformaten, aber eines werde ich weiter unten erwähnen. Obwohl es wenig mit XML zu tun hat, kann es die breitere Anwendung von JSON veranschaulichen, also domänenübergreifende Datenaufrufe. Aus Sicherheitsgründen unterstützt AJAX keine domänenübergreifenden Aufrufe. Es ist sehr mühsam, Daten unter verschiedenen Domänennamen abzurufen. Obwohl es Lösungen gibt (Stone erwähnte Proxys in seinem Vortrag, ich verstehe es nicht, aber ich weiß es). gelöst werden). Ich habe zwei Dateien geschrieben, die ausreichen, um domänenübergreifende Aufrufe zu demonstrieren.

Hauptdatei index.html




Die angepasste Datei „profile.php“

$arr = array(

'name' => ' Chen Yixin',

'nick' => ' 'deep space',

'contact' => array(
'email' => 'shenkong at qq dot com',
'website' => 'http://www.chinaz. com',
)
$json_string = json_encode($arr) ;
?>


Wenn index.html „profile.php“ aufruft, wird natürlich ein JSON-String generiert und als Parameter an getProfile übergeben, und dann wird der Spitzname in das div eingefügt. Auf diese Weise ist eine domänenübergreifende Dateninteraktion nicht besonders einfach. Da JSON so einfach und benutzerfreundlich ist, worauf warten Sie noch?

Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage