Ich habe auf Wikipedia nachgesehen und es gegoogelt und die offizielle Dokumentation gelesen, aber ich bin immer noch nicht an dem Punkt angelangt, an dem ich wirklich verstehe, was JSON ist und warum ich es verwenden würde.
Ich habe eine Weile Anwendungen mit PHP, MySQL und Javascript / HTML erstellt, und wenn JSON etwas tun kann, um mein Leben oder meinen Code oder meine Benutzeroberfläche zu verbessern, würde ich gerne davon erfahren. Kann mir jemand eine kurze Erklärung geben?
Antworten:
JSON (JavaScript Object Notation) ist ein leichtes Format, das für den Datenaustausch verwendet wird. Es basiert auf einer Teilmenge der JavaScript-Sprache (die Art und Weise, wie Objekte in JavaScript erstellt werden). Wie im MDN angegeben , ist ein Teil von JavaScript kein JSON und ein Teil von JSON kein JavaScript.
Ein Beispiel dafür, wo dies verwendet wird, sind Webdienstantworten. Früher verwendeten Webdienste XML als primäres Datenformat für die Rückübertragung von Daten. Seit dem Erscheinen von JSON ( das JSON-Format wird in RFC 4627 von Douglas Crockford angegeben ) war es das bevorzugte Format, da es viel mehr ist Leicht
Weitere Informationen finden Sie auf der offiziellen JSON-Website .
JSON basiert auf zwei Strukturen:
JSON-Struktur
Hier ist ein Beispiel für JSON-Daten:
JSON in JavaScript
JSON (in Javascript) ist eine Zeichenfolge!
Die Leute nehmen oft an, dass alle Javascript-Objekte JSON sind und dass JSON ein Javascript-Objekt ist. Das ist falsch.
In Javascript
var x = {x:y}
ist nicht JSON , dies ist ein Javascript-Objekt . Die beiden sind nicht dasselbe. Das JSON-Äquivalent (dargestellt in der Javascript-Sprache) wärevar x = '{"x":"y"}'
.x
ist ein Objekt vom Typ string und kein eigenständiges Objekt. So schalten Sie diese in ein vollwertiges Javascript - Objekt müssen Sie es zunächst analysieren,var x = JSON.parse('{"x":"y"}');
,x
ist jetzt ein Objekt , aber das ist nicht JSON mehr.Siehe Javascript-Objekt gegen JSON
Wenn Sie mit JSON und JavaScript arbeiten, könnten Sie versucht sein, die
eval
Funktion zum Auswerten des im Rückruf zurückgegebenen Ergebnisses zu verwenden. Dies wird jedoch nicht empfohlen, da in JSON zwei Zeichen (U + 2028 & U + 2029) gültig sind, in JavaScript jedoch nicht (lesen Sie mehr von dieser hier ).Daher muss immer versucht werden, das Crockford-Skript zu verwenden, das nach einem gültigen JSON sucht, bevor es ausgewertet wird. Link auf die Skript Erklärung gefunden werden hier und hier ist ein direkter Link auf die JS - Datei. Jeder große Browser hat heutzutage seine eigene Implementierung dafür.
Beispiel für die Verwendung des JSON-Parsers (mit dem json aus dem obigen Codefragment):
Der JSON-Parser bietet auch eine andere sehr nützliche Methode
stringify
. Diese Methode akzeptiert ein JavaScript-Objekt als Parameter und gibt eine Zeichenfolge im JSON-Format zurück. Dies ist nützlich, wenn Sie Daten an den Server zurücksenden möchten :Die obigen beiden Methoden (
parse
undstringify
) verwenden auch einen zweiten Parameter, eine Funktion, die für jeden Schlüssel und Wert auf jeder Ebene des Endergebnisses aufgerufen wird und bei der jeder Wert durch das Ergebnis Ihrer eingegebenen Funktion ersetzt wird. (Mehr dazu hier )Übrigens, für alle da draußen, die glauben, JSON sei nur für JavaScript gedacht, lesen Sie diesen Beitrag , der etwas anderes erklärt und bestätigt.
Verweise
quelle
Das erklärte Konzept - kein Code oder Fachjargon
Was ist JSON? - Wie ich es meiner Frau TM erklärt habe
Ich: „Es ist im Grunde eine Art, mit jemandem schriftlich zu kommunizieren ... aber mit sehr spezifischen Regeln.
Frau: ja ....?
Ich: Im prosaischen Englisch sind die Regeln ziemlich locker: genau wie beim Käfigkampf. Nicht so bei JSON. Es gibt viele Möglichkeiten, etwas zu beschreiben:
• Beispiel 1: Unsere Familie hat 4 Personen: Sie, ich und 2 Kinder.
• Beispiel 2: Unsere Familie: Sie, ich, kid1 und kid2.
• Beispiel 3: Familie: [du, ich, kid1, kid2]
• Beispiel 4: Wir haben 4 Personen in unserer Familie: Mama, Papa, Kind1 und Kind2.
Frau: Warum verwenden sie nicht einfach Englisch?
Ich: Sie würden, aber denken Sie daran, wir haben es mit Computern zu tun. Ein Computer ist dumm und wird Sätze nicht verstehen können. Wir müssen also wirklich spezifisch sein, wenn Computer beteiligt sind, sonst werden sie verwirrt. Darüber hinaus ist JSON eine ziemlich effiziente Art der Kommunikation, so dass die meisten irrelevanten Dinge herausgeschnitten werden, was ziemlich handlich ist. Wenn Sie unsere Familie mit einem Computer kommunizieren möchten, können Sie dies folgendermaßen tun:
…… und das ist im Grunde JSON. Aber denken Sie daran, Sie müssen die JSON-Grammatikregeln befolgen. Wenn Sie gegen diese Regeln verstoßen, versteht ein Computer einfach nicht (dh analysiert), was Sie schreiben.
Frau: Wie schreibe ich in Json?
Ein guter Weg wäre, einen JSON-Serialisierer zu verwenden - eine Bibliothek, die das schwere Heben für Sie erledigt.
Zusammenfassung
quelle
Kurz gesagt - JSON ist eine Möglichkeit, so zu serialisieren, dass es zu JavaScript-Code wird. Bei der Ausführung (mit eval oder anderweitig) erstellt dieser Code ein JavaScript-Objekt und gibt es zurück, das die von Ihnen serialisierten Daten enthält. Dies ist verfügbar, da JavaScript die folgende Syntax zulässt:
Sie können dies für verschiedene Zwecke verwenden. Zum einen ist dies eine bequeme Möglichkeit, Daten von Ihrem Server-Backend an Ihren JavaScript-Code zu übergeben. Daher wird dies häufig in AJAX verwendet.
Sie können es auch als eigenständigen Serialisierungsmechanismus verwenden, der einfacher ist und weniger Speicherplatz als XML beansprucht. Es gibt viele Bibliotheken, mit denen Sie Objekte in JSON für verschiedene Programmiersprachen serialisieren und deserialisieren können.
quelle
Kurz gesagt, es handelt sich um eine Skriptnotation zum Übergeben von Daten. In gewisser Weise eine Alternative zu XML, die nativ grundlegende Datentypen, Arrays und assoziative Arrays unterstützt (Name-Wert-Paare, Objekte genannt, weil sie das darstellen).
Die in JavaScript verwendete Syntax und JSON selbst steht für "JavaScript Object Notation". Es ist jedoch portabel geworden und wird auch in anderen Sprachen verwendet.
Ein nützlicher Link für Details ist hier:
http://secretgeek.net/json_3mins.asp
quelle
Das JSON-Format wird häufig zum Serialisieren und Übertragen strukturierter Daten über eine Netzwerkverbindung verwendet. Es wird hauptsächlich zum Übertragen von Daten zwischen einem Server und einer Webanwendung verwendet und dient als Alternative zu XML.
quelle
JSON ist die JavaScript-Objektnotation. Im Vergleich zu XML ist dies eine viel kompaktere Methode zum Übertragen von Datensätzen über Netzwerkverbindungen. Ich schlage vor, JSON in AJAX-ähnlichen Anwendungen zu verwenden, in denen XML ansonsten die "empfohlene" Option wäre. Die Ausführlichkeit von XML erhöht die Downloadzeit und erhöht den Bandbreitenverbrauch ($$$). Sie können den gleichen Effekt mit JSON erzielen, und sein Markup ist fast ausschließlich den Daten selbst und nicht der zugrunde liegenden Struktur gewidmet.
quelle
Die häufig verwendete kurze Antwort lautet: Wenn Sie AJAX zum Erstellen von Datenanforderungen verwenden, können Sie Objekte problemlos als JSON-Zeichenfolgen senden und zurückgeben. Verfügbare Erweiterungen für die Javascript-Unterstützung für JSON () rufen alle Javascript-Typen auf, um Daten in einer AJAX-Anforderung an den Server zu senden. AJAX-Antworten können Objekte als JSON-Zeichenfolgen zurückgeben, die durch einen einfachen Auswertungsaufruf in Javascript-Objekte konvertiert werden können, z. B. wenn die AJAX-Funktion someAjaxFunctionCallReturningJson zurückgegeben wird
Sie könnten in Javascript schreiben
JSON kann auch für Webdienst-Nutzdaten verwendet werden, ist jedoch für AJAX-Ergebnisse sehr praktisch.
quelle
Ich mag JSON hauptsächlich, weil es so knapp ist . Für Webinhalte, die komprimiert werden können, ist dies nicht unbedingt eine große Sache (daher ist x html so beliebt). Es gibt jedoch Fälle, in denen dies von Vorteil sein kann.
Zum Beispiel habe ich für ein Projekt Informationen übertragen, die serialisiert und über XMPP übertragen werden mussten . Da die meisten Server die Datenmenge begrenzen, die Sie in einer einzelnen Nachricht übertragen können, fand ich es hilfreich, JSON anstelle der offensichtlichen Alternative XML zu verwenden.
Als zusätzlichen Bonus kennen Sie JSON bereits, wenn Sie mit Python oder Javascript vertraut sind, und können es ohne viel Training interpretieren.
quelle
Was ist JSON?
JavaScript Object Notation (JSON) ist ein leichtes Datenaustauschformat, das von den Objektliteralen von JavaScript inspiriert ist.
JSON-Werte können bestehen aus:
Objekte (Sammlungen von Name-Wert-Paaren) Arrays (geordnete Wertelisten) Zeichenfolgen (in doppelten Anführungszeichen) Zahlen true, false oder null
JSON ist sprachunabhängig.
JSON mit PHP?
Nach PHP Version 5.2.0 wird die JSON-Erweiterung standardmäßig dekodiert und kodiert.
Json_encode - Gibt die JSON-Darstellung der Werte zurück. Json_decode - Dekodiert den JSON-String. Json_last_error - Gibt den zuletzt aufgetretenen Fehler zurück.
JSON-Syntax und Regeln?
Die JSON-Syntax leitet sich von der JavaScript-Objektnotationssyntax ab:
Daten sind in Name / Wert-Paaren angegeben. Daten werden durch Kommas getrennt. Geschweifte Klammern halten Objekte. Eckige Klammern halten Arrays
quelle
Wir müssen ein Projekt am College durchführen und hatten ein sehr großes Problem, es heißt Same Origin Policy. Unter anderen Umständen kann Ihre XMLHttpRequest-Methode aus Javascript keine Anforderungen an andere Domänen als die Domäne stellen, in der sich Ihre Site befindet.
Beispielsweise können Sie keine Anfrage an www.otherexample.com stellen, wenn sich Ihre Website auf www.example.com befindet. JSONRequest erlaubt dies, aber Sie erhalten ein Ergebnis im JSON-Format, wenn diese Site dies zulässt (zum Beispiel hat sie einen Webdienst, der Nachrichten in JSON zurückgibt). Das ist ein Problem, bei dem Sie vielleicht JSON verwenden könnten.
Hier ist etwas Praktisches: Yahoo JSON
quelle
Der Unterschied zwischen JSON und herkömmlicher Syntax wäre wie folgt (in Javascript)
Konventionell
Mit JSON
Wenn wir JSON verwenden, können wir auf unterschiedliche Weise definieren als
Das Wichtigste, an das wir uns erinnern müssen, ist, dass wir beim Erstellen der Klasse alles analysieren müssen, wenn wir die "Employee" -Klasse oder das Modal mit 100 Elementen ohne JSON-Methode erstellen müssen. Mit JSON können wir die Objekte jedoch nur inline definieren, wenn ein neues Objekt für die Klasse definiert ist.
Diese Zeile unten ist also die Art und Weise, Dinge mit JSON zu tun (nur eine einfache Art, Dinge zu definieren).
quelle
Manchmal wird Technik gegeben, wenn keine erforderlich ist, und obwohl viele der am besten bewerteten Antworten genau technisch und spezifisch sind, denke ich persönlich nicht, dass sie einfacher zu verstehen oder prägnant sind, wie es auf Wikipedia oder in zu finden ist offizielle Dokumentation.
Die Art und Weise, wie ich JSON denke, ist genau das, was es ist - eine Sprache in einer Welt verschiedener Sprachen. Der Unterschied zwischen JSON und anderen Sprachen besteht jedoch darin, dass "jeder" "JSON zusammen mit seiner" Muttersprache "spricht.
Stellen wir uns anhand eines Beispiels aus der Praxis vor, wir hätten drei Personen. Eine Person spricht Igbo als Muttersprache. Die zweite Person möchte mit der ersten Person interagieren, die erste Person spricht jedoch Yoruba als ihre erste Sprache.
Was können wir tun?
Zum Glück wurde die dritte Person in unserem Beispiel englischsprachige, aber auch geschieht , spricht sowohl Igbo und Yoruba als zweite Sprache, und so kann zwischen den ersten beiden Personen als Vermittler fungieren.
In der Programmierwelt ist die erste "Person" Python, die zweite "Person" Ruby und die dritte "Person" JSON, die zufällig Ruby in Python "übersetzen" kann und umgekehrt! Natürlich ist diese Analogie nicht perfekt, aber als zweisprachiger Mensch glaube ich, dass es eine einfache Möglichkeit ist, zu sehen, wie JSON mit anderen Programmiersprachen interagiert.
quelle
Es ist sehr einfach. JSON steht für Java Script Object Notation. Stellen Sie sich das als Alternative zur Verwendung von XML für die Übertragung von Daten zwischen Softwarekomponenten vor.
Zum Beispiel habe ich kürzlich eine Reihe von Webdiensten geschrieben, die JSON zurückgegeben haben, und einige Javascript-Entwickler haben dann Code geschrieben, der die Dienste aufruft und die in diesem Format zurückgegebenen Informationen verwendet.
quelle
JSON (Javascript Object Notation) ist ein leichtes Datenformat für den Datenaustausch / die Datenübertragung. Es ist ein Schlüsselwertpaar wie das JavaScript. Die REST-API wird häufig für die Datenübertragung vom Server zum Client verwendet. Heutzutage nutzen viele Social-Media-Sites dies. Obwohl ich dies in Bezug auf Datentypen nicht so robust wie XML sehe. XML hat sehr umfangreiche Datentypen und XSD. JSON fehlt dies etwas.
Bei gleicher Menge an Zeichenfolgendaten ist JSON im Vergleich zu XML leichter, da XML alle öffnenden und schließenden Tags usw. enthält.
quelle
Im Java-Kontext besteht ein Grund, warum JSON möglicherweise verwendet werden möchte, darin, dass es eine sehr gute Alternative zum Serialisierungsframework von Java darstellt, von dem (historisch) gezeigt wurde, dass es einige ziemlich schwerwiegende Sicherheitslücken aufweist.
Joshua Bloch erörtert dies ausführlich in Punkt 85 "Alternativen zur Java-Serialisierung bevorzugen" (Effective Java 3rd Edition).
Die Serialisierung von Java sollte ursprünglich Datenstrukturen in ein Format übersetzen, das leicht übertragen oder gespeichert werden kann. JSON erfüllt diese Anforderung ohne die oben genannten schwerwiegenden Exploits.
quelle
Versuchen Sie den folgenden Code, um Ihre PHP-JSON-Antwort zu analysieren: read.php
server.php
quelle