In diesem Tutorial stellen wir die vor JSON-Datenaustauschformat. Dieser Beitrag behandelt die Struktur eines JSON-Objekts, JSON-Syntaxregeln, den Datenaustausch mit JSON und die Unterstützung von Programmiersprachen für JSON.
Was ist JSON?
- JSON ist ein leichtgewichtiges, für Menschen lesbares Datenaustauschformat.
- JSON wird verwendet, um a collection von Name-Wert-Paaren oder an Bestellliste von Werten.
- JSON ist nützlich für die Serialisierung objects, und Arrays für die Übertragung über das Netzwerk.
- JSON ist sehr einfach zu analysieren und zu generieren und verwendet keine vollständige Markup-Struktur wie XML.
- JSON wurde aufgrund seiner schnellen asynchronen Client-Server-Kommunikation zu einer beliebten Alternative zum XML-Format.
- Alle JSON-Dateien haben die Erweiterung
.json
.
Aufbau eines JSON-Objekts:
Ein JSON kann sein:
- Eine Sammlung von Name-Wert-Paaren:
Das Name muss eine Zeichenfolge in doppelten Anführungszeichen sein; und die Wert kann ein anderer sein string, ein array, a Nummer, boolean oder Null. Der Wert selbst kann ein anderer JSON sein object.
- Eine geordnete Sammlung:
JSON kann verwendet werden, um eine geordnete Sammlung von Objekten/Werten zu speichern. Die Sammlung ähnelt einem Array von Primitiven und einem Array von Objekten in Programmiersprachen.
JSON-Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ "firstName": "John", "lastName": "Snow", "age": 25, "children": [], "spouse": null, "address": { "street": "7504 Taylor Drive", "city": "New York City", "state": "New York", "postalCode": "11238" }, "phoneNumbers": [ { "type": "mobile", "number": "212 555-3346" }, { "type": "fax", "number": "646 555-4567" } ] } |
Im obigen Beispiel
- Die ersten beiden Name-Wert-Paare ordnen einen String einem anderen String zu.
- Das dritte Name-Wert-Paar bildet einen String ab
age
mit der Nummer 25. - Das vierte Name-Wert-Paar bildet einen String ab
children
mit leerem Array[]
. - Das fünfte Name-Wert-Paar bildet einen String ab
spouse
mit einernull
Wert. - Das sechste Name-Wert-Paar bildet einen String ab
address
mit einem anderen JSON-Objekt. - Das siebte Name-Wert-Paar bildet einen String ab
phoneNumbers
mit einem Array von JSON-Objekten.
JSON-Syntaxregeln:
- Ein JSON object ist umgeben von Geschweifte Klammern
{}
. - Die Name-Wert-Paare werden nach a gruppiert Doppelpunkt
(:)
und getrennt durch a Komma(,)
. - Ein array beginnt mit a linke Klammer und endet mit a rechte Klammer
[]
. - Die nachgestellten Kommas und führenden Nullen in einer Zahl sind verboten.
- Die Formate Oktal und Hexadezimal sind nicht zulässig.
- Each Schlüssel innerhalb des JSON sollte eindeutig sein und in doppelte Anführungszeichen gesetzt werden.
- Das boolean type stimmt nur mit zwei speziellen Werten überein:
true
undfalse
und NULL-Werte werden durch dargestelltnull
wörtlich (ohne Anführungszeichen).
JavaScript-JSON-integrierte Bibliothek:
Die integrierte JavaScript-JSON-Bibliothek bietet zwei Funktionen zum Decodieren und Codieren von JSON-Objekten – JSON.parse()
und JSON.stringify()
.
1. JSON.stringify()
gibt einen JSON-String zurück, der einem JavaScript-Objekt entspricht.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!DOCTYPE html> <html> <head> <title>Encoding a JavaScript object into a JSON string.</title> </head> <body> <div id="json"></div> <script> var obj = { "fruit": "Apple", "types": ["Small", "Medium", "Large"], "quantity": 1000 }; var json_string = JSON.stringify(obj); document.getElementById("json").innerHTML = json_string; </script> </body> </html> |
Ergebnis:
{“fruit”:”Apple”,
“types”:[“Small”,”Medium”,”Large”],
“quantity”:1000}
2. JSON.parse()
ist eine sichere und schnelle Methode zum Decodieren eines JSON-Strings als JavaScript-Objekt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!DOCTYPE html> <html> <body> <h2>Decoding a JSON string into a JavaScript object.</h2> <div id="json"></div> <script> var json_str = '{"fruit":"Apple","types":["Small","Medium","Large"],"quantity":1000}'; try { var obj = JSON.parse(json_string); document.getElementById("json").innerHTML = obj.fruit + ", [" + obj.types + "], " + obj.quantity; } catch (e) { alert("Cannot parse given string"); } </script> </body> </html> |
Ergebnis:
Apple,
[Small,Medium,Large],
1000
Wir können auch einen JSON-String in ein JavaScript-Objekt parsen, indem wir die aufrufen eval()
Funktion für die in Klammern eingeschlossene JSON-Zeichenfolge. Dies funktioniert, da JSON von JavaScript abgeleitet ist. eval()
ist eine böse Funktion, die unbedingt vermieden werden sollte. Das ist weil eval
kann alle bösartigen Skripte auf dem Computer des Benutzers mit den Rechten des Aufrufers ausführen. Darüber hinaus kann bösartiger Code den Umfang finden, in dem eval()
aufgerufen wurde, wodurch die Website anfällig für Angriffe wurde. JSON.parse()
ist die sichere und schnelle Alternative zu eval, die bei bösartigem Code sicher scheitert. JSON ist in fast allen modernen Browsern enthalten. Verwenden Sie für alte Browserversionen eine externe JavaScript-Bibliothek wie z json2.js von Douglas Crockford.
Datenaustausch mit JSON:
JSON wird hauptsächlich für die Übertragung von serialisiertem Text zwischen einem Browser und einem Server verwendet.
- Senden von Daten:
Clientseitig wird das JavaScript-Objekt zunächst mit in einen JSON-String konvertiert
JSON.stringify()
Methode. Und die resultierende Zeichenfolge wird dann im Anforderungstext oder -parameter an einen Server übertragen. - Daten empfangen:
Der Server gibt möglicherweise eine andere JSON-Zeichenfolge als Antwort zurück. Jedes vom Server empfangene JSON kann mithilfe von in JavaScript-Objekte konvertiert werden
JSON.parse()
Methode.
Der offizielle Medientyp für JSON ist application/json
.
Unterstützung von Programmiersprachen:
Ursprünglich sollte JSON eine Teilmenge der JavaScript-Sprachen sein, aber mittlerweile unterstützen fast alle großen Programmiersprachen JSON aufgrund seines sprachunabhängigen Datenformats. Die offizielle Website von JSON listet die wichtigsten JSON-Bibliotheken auf, die in verschiedenen Programmiersprachen verfügbar sind und zum Analysieren und Generieren von JSON verwendet werden können. Die beliebtesten JSON-Bibliotheken für Java sind beispielsweise GSON, JSON.simple, Jackson und JSONP.
Das ist alles über das JSON-Datenaustauschformat.
Nützliche Links: