JSON-Sprache. JSON: Grundlagen
Sicher haben Sie schon einmal von JSON gehört. Was ist es? Was kann es und wie nutzt man es?
In diesem Tutorial werden wir die Grundlagen von JSON behandeln und die folgenden Punkte behandeln:
- Was ist JSON?
- Wofür wird JSON verwendet?
- Wie erstelle ich einen JSON-String?
- Ein einfaches Beispiel für eine JSON-Zeichenfolge.
- Vergleichen wir JSON und XML.
- Wie arbeite ich mit JSON in JavaScript und PHP?
JSON ist eine einfache, textbasierte Möglichkeit, strukturierte Daten zu speichern und zu übertragen. Mit einer einfachen Syntax können Sie alles von einer einzelnen Zahl bis hin zu Zeichenfolgen, Arrays und Objekten problemlos im Klartext speichern. Sie können auch Arrays und Objekte miteinander verknüpfen, um komplexe Datenstrukturen zu erstellen.
Sobald die JSON-Zeichenfolge erstellt wurde, kann sie einfach an eine andere Anwendung oder an einen anderen Ort im Netzwerk gesendet werden, da es sich um einfachen Text handelt.
JSON bietet folgende Vorteile:
- Es ist kompakt.
- Die Sätze sind sowohl für Menschen als auch für Computer leicht zu lesen und zu verfassen.
- Es kann problemlos in eine Datenstruktur für die meisten Programmiersprachen (Zahlen, Zeichenfolgen, Boolesche Werte, Arrays usw.) konvertiert werden.
- Viele Programmiersprachen verfügen über Funktionen und Bibliotheken zum Lesen und Erstellen von JSON-Strukturen.
Der Name JSON steht für JavaScript Object Notation. Wie der Name schon sagt, basiert es auf einer Methode zum Definieren von Objekten (ähnlich wie beim Erstellen assoziativer Arrays in anderen Sprachen) und Arrays.
Wofür wird JSON verwendet?Die häufigste Verwendung von JSON besteht darin, Daten vom Server an den Browser zu senden. In der Regel werden JSON-Daten mithilfe von AJAX bereitgestellt, sodass Browser und Server kommunizieren können, ohne dass die Seite neu geladen werden muss.
Sie können JSON auch verwenden, um Daten vom Browser an den Server zu senden, indem Sie eine JSON-Zeichenfolge als Parameter an GET- oder POST-Anfragen übergeben. Diese Methode ist jedoch weniger verbreitet, da die Datenübertragung durch AJAX-Anfragen vereinfacht werden kann. Beispielsweise kann die Produkt-ID im Rahmen einer GET-Anfrage in die URL eingefügt werden.
Die jQuery-Bibliothek verfügt über mehrere Methoden, wie z. B. getJSON() und parseJSON(), die das Abrufen von Daten mithilfe von JSON über AJAX-Anfragen vereinfachen.
Wie erstelle ich einen JSON-String?Für die Erstellung eines JSON-Strings gibt es einige Grundregeln:
- Der JSON-String enthält entweder ein Array von Werten oder ein Objekt (ein assoziatives Array von Name/Wert-Paaren).
- Array wird in eckige Klammern ([ und ]) eingeschlossen und enthält eine durch Kommas getrennte Liste von Werten.
- Ein Objekt wird in geschweifte Klammern (( und )) eingeschlossen und enthält eine durch Kommas getrennte Liste von Name/Wert-Paaren.
- Name/Wert-Paar besteht aus dem in doppelte Anführungszeichen eingeschlossenen Feldnamen, gefolgt von einem Doppelpunkt (:) und dem Feldwert.
- Bedeutung In einem Array oder Objekt kann es sein:
- Zahl (Ganzzahl oder Gleitkomma)
- String (in doppelten Anführungszeichen)
- Boolescher Wert (wahr oder falsch)
- Ein weiteres Array (in eckigen Klammern eingeschlossen)
- Ein anderes Objekt (in geschweiften Klammern eingeschlossen)
- Nullwert
Um doppelte Anführungszeichen in eine Zeichenfolge einzufügen, müssen Sie einen Backslash verwenden: \" . Wie bei vielen Programmiersprachen können Sie Steuerzeichen und Hexadezimalcodes in eine Zeichenfolge einfügen, indem Sie ihnen einen Backslash voranstellen. Weitere Informationen finden Sie auf der JSON-Website.
Einfaches JSON-String-BeispielNachfolgend finden Sie ein Beispiel für eine Bestellung im JSON-Format:
("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email protected]", "contents": [ ("productID": 34, "productName": "Superprodukt", "quantity": 1 ), ("productID": 56, "productName": "Wunderprodukt", "quantity": 3 ) ], „orderCompleted“: true )
Schauen wir uns die Zeile im Detail an:
- Wir erstellen ein Objekt mit geschweiften Klammern (( und )).
- Das Objekt verfügt über mehrere Name/Wert-Paare: „orderID“: 12345 Eine Eigenschaft mit dem Namen „orderId“ und einem ganzzahligen Wert. 12345 „shopperName“: „Vanya Ivanov“ eine Eigenschaft mit dem Namen „shopperName“ und dem Zeichenfolgenwert „Vanya Ivanov " "shopperEmail": " [email protected]„Eine Eigenschaft namens „shopperEmail“ mit einem Zeichenfolgenwert „ [email protected]„ „contents“: [ ... ] Eine Eigenschaft namens „contents“, deren Wert ein Array „orderCompleted“ ist: true Eine Eigenschaft namens „orderCompleted“ und der boolesche Wert true
- Es gibt zwei Objekte im Array „contents“, die einzelne Elemente in der Bestellung darstellen. Jedes Objekt enthält drei Eigenschaften: ProductID, ProductName und Quantity.
Da JSON übrigens auf der Deklaration von JavaScript-Objekten basiert, können Sie den obigen JSON-String schnell und einfach in ein JavaScript-Objekt umwandeln:
var cart = ("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email protected]", "contents": [ ("productID": 34, "productName": "Superprodukt", "quantity": 1 ), ("productID": 56, "productName": "Wunderprodukt", "quantity": 3 ) ], "orderCompleted": true );
Vergleich von JSON und XMLIn vielerlei Hinsicht kann man sich JSON als Alternative zu XML vorstellen, zumindest im Webanwendungsbereich. Das Konzept von AJAX basierte ursprünglich auf der Verwendung von XML zur Datenübertragung zwischen dem Server und dem Browser. Doch in den letzten Jahren ist JSON für den Transport von AJAX-Daten immer beliebter geworden.
Während XML eine bewährte Technologie ist, die in einer ganzen Reihe von Anwendungen verwendet wird, hat JSON den Vorteil, dass es ein kompakteres und leichter erkennbares Datenformat ist.
So würde das obige Beispielobjekt in XML aussehen:
Bestell-ID 12345 Name des Käufers Vanya Ivanov E-Mail des Käufers [email protected] Inhalt Produkt-ID 34 Produktname Superprodukt Menge 1 Produkt-ID 56 Produktname Wunderprodukt Menge 3 orderCompleted wahr
Die XML-Version ist deutlich größer. In Wirklichkeit ist es 1128 Zeichen lang, während die JSON-Version nur 323 Zeichen lang ist. Auch die XML-Version ist recht schwer zu verstehen.
Das ist natürlich ein radikales Beispiel. Und es ist möglich, einen kompakteren XML-Datensatz zu erstellen. Aber selbst es wird deutlich länger sein als das JSON-Äquivalent.
Arbeiten mit einem JSON-String in JavaScriptJSON hat ein einfaches Format, aber das manuelle Erstellen einer JSON-Zeichenfolge ist ziemlich mühsam. Darüber hinaus müssen Sie häufig einen JSON-String nehmen und seinen Inhalt in eine Variable konvertieren, die im Code verwendet werden kann.
Die meisten Programmiersprachen verfügen über Tools zum einfachen Konvertieren von Variablen in JSON-Strings und umgekehrt.
Erstellen einer JSON-Zeichenfolge aus einer VariablenJavaScript verfügt über eine integrierte JSON.stringify()-Methode, die eine Variable entgegennimmt und einen JSON-String zurückgibt, der ihren Inhalt darstellt. Erstellen wir beispielsweise ein JavaScript-Objekt, das die Bestellinformationen aus unserem Beispiel enthält, und erstellen daraus dann einen JSON-String:
var cart = ("orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email protected]", "contents": [ ("productID": 34, "productName": "Superprodukt", "quantity": 1 ), ("productID": 56, "productName": "Wunderprodukt", "quantity": 3 ) ], "orderCompleted": true ); Alert (JSON.stringify(cart));
Dieser Code erzeugt:
Beachten Sie, dass die Methode JSON.stringify() einen JSON-String ohne Leerzeichen zurückgibt. Es ist schwieriger zu lesen, aber kompakter für die Übertragung über das Netzwerk.
Es gibt mehrere Möglichkeiten, einen JSON-String in JavaScript zu analysieren, aber die sicherste und zuverlässigste ist die Verwendung der integrierten Methode JSON.parse(). Es empfängt einen JSON-String und gibt ein JavaScript-Objekt oder -Array zurück, das die Daten enthält. Zum Beispiel:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [email protected]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "Superprodukt", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": "Wundergüter", \"quantity": 3\ ) \ ], \"orderCompleted": true \ ) \"; var cart = JSON.parse(jsonString); Alert(cart.shopperEmail); Alert(cart.contents.productName);
Wir haben eine jsonString-Variable erstellt, die den JSON-String unserer Beispielbestellung enthält. Anschließend übergeben wir diese Zeichenfolge an die Methode JSON.parse(), die ein Objekt mit den JSON-Daten erstellt und in der Variablen „cart“ speichert. Jetzt müssen Sie nur noch die Eigenschaften des ShopperEmail-Objekts und den Produktnamen des Contents-Arrays überprüfen.
Als Ergebnis erhalten wir die folgende Ausgabe:
In einer realen Anwendung würde Ihr JavaScript-Code den Auftrag als JSON-String in einer AJAX-Antwort vom Serverskript empfangen, den String an die JSON.parse()-Methode übergeben und die Daten dann verwenden, um ihn auf der Seite des Benutzers anzuzeigen.
JSON.stringify() und JSON.parse() verfügen über weitere Funktionen, z. B. die Verwendung von Rückruffunktionen zur benutzerdefinierten Konvertierung bestimmter Daten. Solche Optionen sind sehr nützlich, um verschiedene Daten in richtige JavaScript-Objekte umzuwandeln.
Arbeiten mit einem JSON-String in PHPPHP verfügt wie JavaScript über integrierte Funktionen zum Arbeiten mit JSON-Strings.
Erstellen einer JSON-Zeichenfolge aus einer PHP-VariablenDie Funktion json_encode() nimmt eine PHP-Variable und gibt einen JSON-String zurück, der den Inhalt der Variablen darstellt. Hier ist unser Bestellbeispiel, geschrieben in PHP:
Dieser Code gibt genau denselben JSON-String zurück wie im JavaScript-Beispiel:
(„orderID“:12345, „shopperName“: „Vanya Ivanov“, „shopperEmail“: [email protected]","contents":[("productID":34,"productName":"Superprodukt","quantity":1),("productID":56,"productName":"Wunderprodukt","quantity": 3)],"orderCompleted":true)
In einer realen Anwendung sendet Ihr PHP-Skript diesen JSON-String als Teil einer AJAX-Antwort an den Browser, wo der JavaScript-Code ihn mithilfe der JSON.parse()-Methode wieder in eine Variable zur Anzeige auf der Seite des Benutzers analysiert .
Sie können verschiedene Flags als zweites Argument an die Funktion json_encode() übergeben. Mit ihrer Hilfe können Sie die Prinzipien der Kodierung des Inhalts von Variablen in einen JSON-String ändern.
Erstellen Sie eine Variable aus einem JSON-StringUm einen JSON-String in eine PHP-Variable zu konvertieren, verwenden Sie die Methode json_decode(). Ersetzen wir unser Beispiel für JavaScript durch die Methode JSON.parse() mit PHP-Code:
Wie bei JavaScript erzeugt dieser Code Folgendes:
[email protected] Wunderprodukt
Standardmäßig gibt die Funktion json_decode() JSON-Objekte als PHP-Objekte zurück. Es gibt generische PHP-Objekte der Klasse stdClass. Deshalb verwenden wir ->, um auf die Eigenschaften des Objekts im obigen Beispiel zuzugreifen.
Wenn Sie ein JSON-Objekt als zugehöriges PHP-Array benötigen, müssen Sie true als zweites Argument an die Funktion json_decode() übergeben. Zum Beispiel:
$cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";
Dieser Code erzeugt die gleiche Ausgabe:
[email protected] Wunderprodukt
Sie können der Funktion json_decode() auch andere Argumente übergeben, um die Rekursionstiefe und den Umgang mit großen Ganzzahlen anzugeben.
AbschlussObwohl JSON leicht zu verstehen und zu verwenden ist, ist es ein sehr nützliches und flexibles Werkzeug für die Datenübertragung zwischen Anwendungen und Computern, insbesondere bei Verwendung von AJAX. Wenn Sie planen, eine AJAX-Anwendung zu entwickeln, besteht kein Zweifel daran, dass JSON zu einem unverzichtbaren Werkzeug in Ihrer Werkstatt wird.
Was ist JSON und was kann es? In diesem Artikel erfahren Sie, wie Sie mit JSON einfach mit Daten arbeiten können. Wir werden uns auch mit der Arbeit mit JSON unter Verwendung von PHP und JavaScript befassen.
Wenn Sie Websites oder Webanwendungen im Allgemeinen entwickelt haben, ist die Wahrscheinlichkeit groß, dass Sie zumindest nebenbei schon einmal von JSON gehört haben. Aber was genau bedeutet JSON? Was kann dieses Datenformat und wie kann es genutzt werden?
In diesem Artikel lernen wir die Grundlagen der Arbeit mit dem JSON-Format kennen. Wir werden folgende Themen verfolgen:
- Was ist das JSON-Format?
- Wie erstelle ich JSON-Strings?
- Einfaches Beispiel für JSON-Daten
- Vergleich von JSON mit XML
Lasst uns beginnen!
Was ist das JSON-Format?JSON ist eine einfache, textbasierte Möglichkeit, strukturierte Daten zu speichern und zu übertragen. Mit einer einfachen Syntax können Sie sowohl einfache Zahlen und Zeichenfolgen als auch Arrays und Objekte problemlos speichern, indem Sie nur Text verwenden. Sie können auch Objekte und Arrays verknüpfen und so komplexe Datenstrukturen erstellen.
Sobald die JSON-Zeichenfolge erstellt ist, kann sie problemlos an jede Anwendung oder jeden Computer gesendet werden, da es sich nur um Text handelt.
JSON hat viele Vorteile:
- Es ist kompakt
- Es ist für Menschen lesbar und für Computer leicht lesbar
- Es kann problemlos in Softwareformate konvertiert werden: numerische Werte, Zeichenfolgen, boolesches Format, Nullwert, Arrays und assoziative Arrays.
- Fast alle Programmiersprachen verfügen über Funktionen, mit denen Sie JSON-Datenformate lesen und erstellen können.
Wörtlich übersetzt steht die Abkürzung JSON für JavaScript Object Notation. Wie bereits beschrieben, basiert dieses Format auf der Erstellung von Objekten, ähnlich wie assoziative Arrays in anderen Programmiersprachen.
Für welche Zwecke wird JSON verwendet?JSON wird vor allem zum Datenaustausch zwischen Javascript und der Serverseite (PHP) verwendet. Mit anderen Worten, für die Ajax-Technologie. Dies ist sehr praktisch, wenn Sie mehrere Variablen oder ganze Datenarrays übergeben.
So sieht es in einem Beispiel aus:
So wird das Bild vergrößert, ohne dass die Seite im Browser neu geladen werden muss. Dies ist sehr praktisch, wenn wir Teildaten empfangen oder eine kleine Informationsmenge an den Server übertragen müssen.
Jedermanns Lieblings-jQuery verfügt über die Funktionen getJSON() und parseJSON(), die Ihnen bei der Arbeit mit dem Format über Ajax-Anfragen helfen.
Wie erstelle ich JSON-Strings?Nachfolgend finden Sie die Grundregeln zum Erstellen von JSON-Strings:
- Der JSON-String enthält sowohl ein Wertearray als auch ein Objekt (ein assoziatives Array mit Name/Wert-Paaren).
- Das Array muss in eckige Klammern [ und ] eingeschlossen werden und kann eine Liste von Werten enthalten, die durch ein Komma getrennt sind.
- Objekte werden mit geschweiften Armen ( und ) umschlossen und enthalten außerdem durch Kommas getrennte Name/Wert-Paare.
- Name/Wert-Paare bestehen aus dem Feldnamen (in doppelten Anführungszeichen), gefolgt von einem Doppelpunkt (:) und dem Wert des Felds.
- Die Werte in einem Array oder Objekt können sein:
- Numerisch (Ganzzahl oder Punktbruch)
- Zeichenfolgen (in doppelte Anführungszeichen eingeschlossen)
- Boolescher Wert (wahr oder falsch)
- Andere Arrays (in eckige Klammern [ und ] eingeschlossen)
- Andere Gegenstände (in geschweifte Arme gehüllt ( und ))
- Nullwert
Wichtig! Wenn Sie doppelte Anführungszeichen in Werten verwenden, maskieren Sie diese mit einem Backslash: \". Sie können auch hexadezimal kodierte Zeichen verwenden, genau wie Sie es in anderen Programmiersprachen tun.
Einfaches Beispiel für JSON-DatenDas folgende Beispiel zeigt, wie Sie Daten im „Warenkorb“ eines Online-Shops im JSON-Format speichern können:
(„orderID“: 12345, „shopperName“: „John Smith“, „shopperEmail“: „ [email protected]", "contents": [ ("productID": 34, "productName": "SuperWidget", "quantity": 1 ), ("productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], „orderCompleted“: true )
Lassen Sie uns diese Daten Stück für Stück aufschlüsseln:
Da JSON schließlich mit Objekten in JavaScript identisch ist, können Sie dieses Beispiel ganz einfach nehmen und daraus ein JavaScript-Objekt erstellen:
var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protected]", "contents": [ ("productID": 34, "productName": "SuperWidget", "quantity": 1 ), ("productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], „orderCompleted“: true );
Vergleich von JSON mit XMLIn den meisten Fällen werden Sie sich JSON als Alternative zu XML vorstellen – zumindest innerhalb von Webanwendungen. Das Konzept von Ajax nutzt ursprünglich XML zum Datenaustausch zwischen dem Server und dem Browser, doch in den letzten Jahren ist JSON für die Übertragung von Ajax-Daten immer beliebter geworden.
Obwohl XML eine bewährte Technologie ist, die von vielen Anwendungen verwendet wird, liegen die Vorteile des JSON-Formats darin, dass es kompakter und einfacher zu schreiben und zu lesen ist.
Hier ist das obige JSON-Beispiel, nur im XML-Format umgeschrieben:
orderID 12345 shopperName John Smith shopperEmail [email protected] Inhalt Produkt-ID 34 Produktname SuperWidget Menge 1 Produkt-ID 56 Produktname WonderWidget Menge 3 orderCompleted wahr
Wie Sie sehen, ist es um ein Vielfaches länger als JSON. Tatsächlich ist dieses Beispiel 1128 Zeichen lang, während die JSON-Version nur 323 Zeichen umfasst. Die XML-Version ist außerdem schwieriger zu lesen.
Natürlich kann man nicht nur anhand eines Beispiels urteilen, aber selbst kleine Informationsmengen nehmen im JSON-Format weniger Platz ein als in XML.
Wie arbeite ich mit JSON über PHP und JS?Nun kommen wir zum interessantesten Teil – der praktischen Seite des JSON-Formats. Lassen Sie uns zunächst JavaScript würdigen und dann sehen, wie Sie JSON über PHP manipulieren können.
Erstellen und Lesen des JSON-Formats mit JavaScriptObwohl das JSON-Format einfach ist, ist es schwierig, bei der Entwicklung von Webanwendungen manuell zu schreiben. Darüber hinaus müssen Sie häufig JSON-Strings in Variablen konvertieren und diese dann in Ihrem Code verwenden.
Glücklicherweise bieten viele Programmiersprachen Tools für die Arbeit mit JSON-Strings. Die Hauptidee davon:
Um JSON-Strings zu erstellen, beginnen Sie mit Variablen, die einige Werte enthalten, und übergeben sie dann durch eine Funktion, die die Daten in einen JSON-String umwandelt.
Beim Lesen von JSON-Strings beginnen Sie mit einem JSON-String, der bestimmte Daten enthält, und übergeben den String durch eine Funktion, die Variablen mit den Daten erstellt.
Sehen wir uns an, wie das in JavaScript gemacht wird.
Erstellen einer JSON-Zeichenfolge aus einer JavaScript-VariablenJavaScript verfügt über eine integrierte Methode, JSON.stringify(), die eine Javascript-Variable entgegennimmt und einen JSON-String zurückgibt, der den Inhalt der Variablen darstellt. Lassen Sie uns beispielsweise ein zuvor erstelltes Objekt verwenden und es in einen JSON-String konvertieren.
var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protected]", "contents": [ ("productID": 34, "productName": "SuperWidget", "quantity": 1 ), ("productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], „orderCompleted“: true );
Folgendes wird auf dem Bildschirm angezeigt:
(„orderID“:12345, „shopperName“: „John Smith“, „shopperEmail“: „ [email protected]", "Inhalte":[("ProduktID":34,"ProduktName":SuperWidget",Menge":1), ("ProduktID":56,"ProduktName":WonderWidget",Menge":3) ], „orderCompleted“:true)
Beachten Sie, dass JSON.stringify() JSON-Strings ohne Leerzeichen ausgibt. Es ist schwer zu lesen, aber kompakter, was beim Senden von Daten wichtig ist.
Erstellen einer JavaScript-Variablen aus einem JSON-StringEs gibt mehrere Möglichkeiten, JSON-Strings zu analysieren. Die akzeptabelste und sicherste Methode ist die Verwendung der Methode JSON.parse(). Es nimmt eine JSON-Zeichenfolge und gibt ein JavaScript-Objekt oder -Array zurück, das die JSON-Daten enthält. Hier ist ein Beispiel:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [email protected]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "SuperWidget", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": " WonderWidget", \ "quantity": 3 \ ) \ ], \ "orderCompleted": true \ ) \ "; var cart = JSON.parse(jsonString); Alert(cart.shopperEmail); Alert(cart.contents.productName);
Hier haben wir eine Variable namens „jsonString“ erstellt, die den JSON-String aus den zuvor bereitgestellten Beispielen enthält. Dann haben wir diese Zeichenfolge über JSON.parse() übergeben, um ein Objekt mit JSON-Daten zu erstellen, die in der Variablen „cart“ gespeichert wurden. Abschließend prüfen wir die Datenverfügbarkeit und zeigen einige Informationen mithilfe des modalen Alarmfensters an.
Folgende Informationen werden angezeigt:
In einer echten Webanwendung sollte Ihr JavaScript-Code eine JSON-Zeichenfolge als Antwort vom Server erhalten (nach dem Senden einer AJAX-Anfrage), die Zeichenfolge dann analysieren und dem Benutzer den Inhalt des Warenkorbs anzeigen.
Erstellen und Lesen des JSON-Formats mit PHPPHP verfügt wie JavaScript über Funktionen, mit denen Sie Variablen in das JSON-Format konvertieren können und umgekehrt. Schauen wir sie uns an.
Erstellen einer JSON-Zeichenfolge aus einer PHP-VariablenJson_encode() nimmt eine PHP-Variable und gibt einen JSON-String zurück, der die Daten der Variablen darstellt. Hier ist unser Beispiel eines in PHP geschriebenen „Warenkorbs“:
Dieser Code erzeugt genau das gleiche Ergebnis wie das JavaScript-Beispiel – eine gültige JSON-Zeichenfolge, die den Inhalt der Variablen darstellt:
(„orderID“:12345, „shopperName“: „John Smith“, „shopperEmail“: „ [email protected]","Inhalte":[("ProduktID":34,"ProduktName":SuperWidget",Menge":1,("ProduktID":56,"ProduktName":WonderWidget",Menge":3) ],"orderCompleted":true)
In Wirklichkeit sollte Ihr PHP-Skript einen JSON-String als Antwort auf eine AJAX-Anfrage senden, wobei JavaScript JSON.parse() verwendet, um den String in Variablen umzuwandeln.
In der Funktion json_encode() können Sie zusätzliche Parameter angeben, mit denen Sie einige Zeichen in Hex umwandeln können.
Erstellen einer PHP-Variable aus einem JSON-StringÄhnlich wie oben gibt es eine json_decode()-Funktion, mit der Sie JSON-Strings dekodieren und den Inhalt in Variablen einfügen können.
Wie bei JavaScript gibt dieser Code Folgendes aus:
[email protected] WonderWidget
Standardmäßig gibt json_decode() JSON-Objekte als PHP-Objekte zurück. Ähnlich wie bei der regulären Syntax verwenden wir ->, um auf die Eigenschaften eines Objekts zuzugreifen.
Wenn Sie die Daten später als assoziatives Array verwenden möchten, übergeben Sie einfach den zweiten Parameter true an die Funktion json_decode(). Hier ist ein Beispiel:
$cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";
Dies führt zum gleichen Ergebnis:
[email protected] WonderWidget
Sie können der Funktion json_decode() auch zusätzliche Argumente übergeben, um die Verarbeitung großer Zahlen und die Rekursion zu bestimmen.
Fazit zum JSON-FormatWenn Sie eine Webanwendung mit Ajax-Technologie erstellen möchten, werden Sie sicherlich das JSON-Format für den Datenaustausch zwischen Server und Browser verwenden.
JSON ist ein Textformat zum Aufzeichnen von Daten. Damit können Sie sowohl eine einzelne Zahl oder Zeichenfolge als auch komplexe Strukturen, beispielsweise Arrays mit Daten, in Textform darstellen. Die Verwendung dieses Aufzeichnungsformats ist komfortabel, da es lesbar und intuitiv ist und gleichzeitig die Speicherung sehr komplexer Datenstrukturen ermöglicht. Darüber hinaus ist es kompakter als XML und daher meiner Meinung nach besser für den Datenaustausch zwischen einem Webbrowser und einem Server geeignet.
JSON-Syntax mit BeispielenDas JSON-Format wird normalerweise in 2 Varianten geschrieben:
1. Wertefolge. Die Sequenz 10, 15 und „test“ im JSON-Format würde beispielsweise so aussehen:
2. Aufzeichnung in Form von Schlüssel:Wert-Paaren. Zum Beispiel:
(„Vollständiger Name“: „Ivanov Sergey“, „Geburtsdatum“: „09.03.1975“)
Ein etwas komplexeres Beispiel:
(„Vollständiger Name“: „Ivanov Sergey“, „Adresse“: („Stadt“: „Moskau“, „Straße“: „Pyatnitskaya“, „Haus“: „35“) )
PHP-Funktionen zum Arbeiten mit dem JSON-FormatIn PHP-Sprache seit Version 5.2. Es gibt nur 4 Funktionen:
- json_decode – Dekodiert einen JSON-String (ruft Daten aus einem JSON-Format-String ab)
- json_encode – Gibt eine JSON-Darstellung der Daten zurück (konvertiert die Daten in einen JSON-String)
- json_last_error_msg – Gibt eine Zeichenfolge zurück, die die Fehlermeldung des letzten Aufrufs von json_encode() oder json_decode() angibt.
- json_last_error – Gibt den letzten Fehler zurück
Grundsätzlich werden größtenteils nur zwei Funktionen verwendet: json_encode und json_decode. Ich werde nicht auf Einzelheiten ihrer Syntax eingehen. Weitere Einzelheiten finden Sie auf php.net. Anwendungsbeispiel:
$arr1 = array(0,1,2); $json_str = json_encode($arr1); echo $json_str; // gibt einen JSON-String aus: $arr2 = json_decode($json_str); echo $arr2; // gibt aus: 1
Bitte beachten Sie: Beim Kodieren von Daten in Russisch in das JSON-Format konvertiert die Funktion json_encode russische Zeichen in Unicode, d. h. ersetzt sie durch \uXXXX und somit wird der JSON-String für Menschen unlesbar (aber für den Browser verständlich). Wenn Sie die Konvertierung in Unicode vermeiden möchten (z. B. beim Debuggen von Code), können Sie einfach die Option JSON_UNESCAPED_UNICODE verwenden.
Damit beim Codieren keine Escape-Schrägstriche hinzugefügt werden und Zeichenfolgen mit Zahlen als Zahlen codiert werden, können Sie außerdem JSON_UNESCAPED_SLASHES und JSON_NUMERIC_CHECK verwenden. Um die JSON-Zeichenfolge für Menschen lesbar zu machen, gehen wir daher beispielsweise wie folgt vor:
$arr = array("fio" => "Ivanov Sergey", "age" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
Ohne diese Optionen würde die Zeile so aussehen:
( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "age" : "32", "vk_url": "https:\/\ /vk.com\/id11111" )
und mit den Optionen erhalten wir eine lesbare Zeile:
(„fio“: „Ivanov Sergey“, „age“: 32, „vk_url“: „https://vk.com/id11111“)
Noch ein Punkt: Wenn Sie möchten, dass die Funktion json_decode beim Dekodieren eines JSON-Strings ein Array zurückgibt, fügen Sie der Funktion einfach einen zweiten Parameter hinzu, der true entspricht.
$json_str = "( "a":1, "b":2, "c":3 )"; $obj = json_decode($json_str); // Objekt abrufen echo $obj->a; // gibt 1 aus $arr = json_decode($json_str, true); // ein assoziatives Array abrufen echo $arr["a"]; // gibt 1 aus
Damit ist meine Überprüfung der PHP-Funktionen abgeschlossen.
JavaScript-Funktionen zum Arbeiten mit dem JSON-FormatBeginnen wir mit der Tatsache, dass das JSON-Format ursprünglich für die JavaScript-Sprache erfunden wurde und dann einfach zu einem separaten Textformat wurde, das in verschiedenen Sprachen verwendet wird. Anscheinend ist die JSON-Syntax deshalb der Syntax zum Schreiben gewöhnlicher Objekte und Arrays sehr ähnlich.
// Beispiel eines Arrays in JavaScript arr = ; alarm(arr); // wird 1 anzeigen // Beispiel eines Objekts in JavaScript obj = ( "name": "Vasya", "age": 35, "isAdmin": false ) warning(obj.name); // wird „Vasya“ drucken
JavaScript-Funktionen zum Konvertieren in und aus dem JSON-Format:
- JSON.parse – Dekodierung eines JSON-Strings (Konvertieren eines Strings in Objekte und/oder Arrays)
- JSON.stringify – gibt eine JSON-Darstellung von Daten zurück (Konvertierung von Objekten und/oder Arrays in einen JSON-String)
Ein einfaches Beispiel für die Dekodierung eines JSON-Strings in ein Array mit Zahlen:
Str = ""; arr = JSON.parse(str); alarm(arr); // gibt 1 aus
Ein Beispiel für die Konvertierung (Serialisierung) eines Objekts in einen JSON-String:
Obj = ( "name": "Vasya", "age": 35, "isAdmin": false ) alarm(JSON.stringify(obj)); // wird angezeigt („name“: „Vasya“, „age“:35, „isAdmin“:false)
Beim Serialisieren (Konvertieren) eines Objekts in einen JSON-String wird die toJSON-Methode dieses Objekts aufgerufen, sofern vorhanden. Wenn keine Methode vorhanden ist, werden alle Eigenschaften des Objekts aufgelistet. Ein Beispiel für die Konvertierung eines Objekts mit der toJSON-Methode:
Obj = ( "name": "Vasya", "age": 35, "isAdmin": false, toJSON: function() ( return this.age; ) ) alarm(JSON.stringify(obj)); // gibt 35 aus
Beispiele für die praktische Anwendung des JSON-FormatsTatsächlich verwende ich persönlich das JSON-Format in zwei Hauptsituationen:
1. Übertragen von Daten zwischen dem Browser und dem Server mithilfe von Ajax-Anfragen.Wir haben beispielsweise eine Seite, auf der wir Daten aktualisieren müssen, ohne die Seite neu zu laden. Nehmen wir an, Sie benötigen Informationen mit einer Liste der Mitarbeiter und deren Daten, die vom Server „heruntergeladen“ werden sollen.
In JavaScript machen wir es uns mit jQuery einfach und zeigen die Daten in Form einer Tabelle im Browser an:
$.getJSON("get-info.php").success(function(data) ( // Ajax-Anfrage, Daten vom Server werden in die Datenvariable geschrieben htmlstr = "