JSON

JavaScript-Objekt-Notation
JSON vector logo.svg
Dateiname Erweiterung
.json
Internet -Medientyp
Anwendung/JSON
Typschlüssel TEXT
Uniform Typ Identifier (UTI) public.json
Art des Formats Datenaustausch
Erweitert von JavaScript
Standard STD 90 ( RFC 8259), ECMA-404, ISO/IEC 21778: 2017
Offenes Format? Ja
Webseite JSON.org

JSON (JavaScript-Objekt-Notation, ausgesprochen /ˈsən/; Auch /ˈˌsɒn/) ist ein offener Standard Datei Format und Datenaustausch Format, das verwendet für Menschen lesbar Text zum Speichern und Übertragen von Datenobjekten, die bestehen aus Attribut -Wert -Paare und Arrays (oder andere Serialisierbar Werte). Es ist ein gemeinsames Datenformat mit unterschiedlichen Verwendungen in Elektronischer Datenaustausch, einschließlich der von Web Applikationen mit Server.

JSON ist a Sprachunabhängig Datei Format. Es wurde abgeleitet von JavaScript, aber viele modern Programmiersprachen Code zum Generieren einschließen und analysieren JSON-Format-Daten. JSON -Dateinamen verwenden die Erweiterung .json.

Douglas Crockford Ursprünglich spezifizierte das JSON -Format in den frühen 2000er Jahren.[1] Er und Chip Morningstar Send die erste JSON -Nachricht im April 2001.[2]

Benennung und Aussprache

Das Akronym stammt von staatlicher Software, einem von einem Unternehmen mitbegründeten Unternehmen Douglas Crockford und andere im März 2001.

Das 2017 internationaler Standard (ECMA-404 und ISO/IEC 21778: 2017) legt "ausgesprochen /ˈ.sən/, wie in 'Jason und die Argonauten'".[3][4] Die erste (2013) Ausgabe von ECMA-404 hat die Aussprache nicht angesprochen.[5] Das UNIX- und Linux -Systemadministrationshandbuch besagt, dass "Douglas Crockford, der das JSON -Format benannte und gefördert hat, sagt, es sei wie der Name Jason ausgesprochen. Aber irgendwie scheint 'Jay-Sawn' in der technischen Gemeinschaft häufiger geworden zu sein. "[6] Crockford sagte im Jahr 2011: "Es gibt viele Argumente darüber, wie Sie das aussprechen, aber es ist mir ausschließlich egal."[7]

Standards

Nach RFC 4627 war seit 2006 als "Informationsspezifikation" erhältlich. JSON wurde 2013 erstmals standardisiert wie ECMA-404.[8] RFC 8259, veröffentlicht im Jahr 2017, ist die aktuelle Version der Internetstandard STD 90und es bleibt mit ECMA-404 überein.[9] Im selben Jahr wurde JSON auch als standardisiert als ISO/IEC 21778: 2017.[3] Das ECMA und ISO/IEC Standards beschreiben nur die zulässige Syntax, während der RFC einige Sicherheits- und Interoperabilitätsüberlegungen abdeckt.[10]

Geschichte

Douglas Crockford im Yahoo Building (2007)

JSON ist aus dem Bedürfnis nach einem hervorgegangen staatenlos, Echtzeit-Server-zu-Browser-Kommunikationsprotokoll ohne Browser-Plugins wie z. Blinken oder Java Applets, die dominierenden Methoden in den frühen 2000er Jahren.[11]

Ein Vorläufer der JSON -Bibliotheken wurde in einem Digital Asset Trading Game Project für Kinder genannt Cartoon -Umlaufbahn Bei Communities.com (bei dem die Mitbegründer der staatlichen Software zuvor alle gearbeitet hatten) für Cartoon Network, das ein Browser-Side-Plug-In mit einem proprietären Messaging-Format verwendete, um manipulieren Dynamisches HTML Elemente (dieses System gehört auch 3DO). Bei der Entdeckung von früh Ajax Funktionen, Digigroups, Noosh und andere verwendeten Frames, um Informationen in das visuelle Feld der Benutzerbrowser zu übergeben, ohne den visuellen Kontext einer Webanwendung zu aktualisieren, und realisierte Echtzeit-Webanwendungen nur mithilfe der Standardfunktionen von HTTP, HTML und JavaScript von Netscape 4.0. 5+ und dh 5+.

Crockford spezifizierte und populierte das JSON -Format.[12] Die staatlichen Software-Mitbegründer stimmten zu, ein System zu erstellen, das Standard-Browserfunktionen verwendete und eine bereitstellte Abstraktionsschicht Damit Webentwickler staatliche Webanwendungen erstellen können, die eine anhaltende Duplex -Verbindung zu einem Webserver hatten, indem Sie zwei halten Hypertext Transfer Protocol (HTTP) Verbindungen öffnen und recyceln sie vor Standard-Browser-Auszeiten, wenn keine weiteren Daten ausgetauscht wurden. Die Mitbegründer hatten eine Rundkabinendiskussion und stimmten, ob das Datenformat JSML (JavaScript Markup Language) oder JSON (JavaScript-Objektnotation) sowie unter welcher WAS nennt Lizenz Geben Sie ein, um es verfügbar zu machen. Chip Morningstar entwickelte die Idee für das staatliche Anwendungsrahmen bei der staatlichen Software.[13][14]

Das System wurde an verkauft an Sun Microsystems, Amazon.com, und Eds. Der json.org[15] Die Website wurde im Jahr 2002 gestartet. Im Dezember 2005, Yahoo! begann einige seiner Internetdienste in JSON.[16]

JSON basierte auf einem Teilmenge des JavaScript Skriptsprache (insbesondere Standard ECMA-262 3. Ausgabe -Dezember 1999[17]) und wird üblicherweise mit JavaScript verwendet, aber es ist a Sprachunabhängig Datei Format. Code für Parsing und das Generieren von JSON -Daten sind in vielen verfügbar Programmiersprachen. JSONs Website listet JSON auf Bibliotheken nach Sprache.

Im Oktober 2013, ECMA International veröffentlichte die erste Ausgabe seines JSON Standard ECMA-404.[8] Das selbe Jahr, RFC 7158 verwendet ECMA-404 als Referenz. Im Jahr 2014, RFC 7159 wurde die Hauptreferenz für JSONs Internetnutzung, ersetzt sich RFC 4627 und RFC 7158 (aber aufrechterhalten ECMA-262 und ECMA-404 als Hauptreferenz). Im November 2017, ISO/IEC JTC 1/SC 22 Veröffentlicht ISO/IEC 21778: 2017[3] als internationaler Standard. Am 13. Dezember 2017 die Internettechnik-Arbeitsgruppe veraltet RFC 7159 Wenn es veröffentlicht wurde RFC 8259, das ist die aktuelle Version der Internetstandard STD 90.[18][19]

Crockford fügte der JSON -Lizenz eine Klausel hinzu, die besagt, dass "die Software zum Guten, nicht zum Bösen verwendet werden soll" Open Source Die JSON -Bibliotheken verspotten sich während der Verspottung von Unternehmensanwälten und denen, die übermäßig pedantisch sind. Andererseits führte diese Klausel zu Lizenzkompatibilität Probleme der JSON -Lizenz mit anderen Open-Source-Lizenzen, wie Quelloffene Software und gratis Software Normalerweise implizieren Sie keine Einschränkungen für den Zweck des Gebrauchs.[20]

Syntax

Das folgende Beispiel zeigt eine mögliche JSON -Darstellung, die eine Person beschreibt.

{  "Vorname": "John",  "Nachname": "Schmied",  "ist am Leben": Stimmt,  "das Alter": 27,  "die Anschrift": {  "Adresse": "21 2nd Street",  "Stadt": "New York",  "Zustand": "NY",  "Postleitzahl": "10021-3100"  },  "Telefonnummern": [  {  "Typ": "Heimat",  "Nummer": "212 555-1234"  },  {  "Typ": "Büro",  "Nummer": "646 555-4567"  }  ],  "Kinder": [  "Catherine",  "Thomas",  "Trevor"  ],  "Ehepartner": Null } 

Zeichenkodierung

Obwohl Crockford ursprünglich behauptete und glaubte, dass JSON eine strenge Teilmenge von JavaScript und ECMascript ist, ist[21] Seine Spezifikation ermöglicht tatsächlich gültige JSON -Dokumente, die kein gültiges JavaScript sind. JSON erlaubt das Unicode -Linien -Terminatoren U+2028 Zeilenabscheider und U+2029 Absatzabscheider In zitierten Zeichenfolgen unabgeordnet zu erscheinen, während ECMascript 2018 und älter dies nicht tut.[22][23] Dies ist eine Folge von JSON, der nur "Kontrollfiguren" nicht zugibt. Für die maximale Portabilität sollten diese Zeichen zurückgezogen werden.

JSON -Austausch in einem offenen Ökosystem muss in codiert werden UTF-8.[9] Die Codierung unterstützt den vollständigen Unicode -Zeichensatz, einschließlich dieser Zeichen außerhalb der Grundlegende mehrsprachige Ebene (U+10000 bis U+10ffff). Wenn sie jedoch entkommen sind, müssen diese Charaktere verwendet werden UTF-16-Ersatzpaare. Zum Beispiel um das einzubeziehen Emoji Charakter U+1F610 Neutrales Gesicht in JSON:

{ "Gesicht": "" " } // oder { "Gesicht": "\ ud83d \ ude10" } 

JSON wurde zum Zeitpunkt der Revision der Sprache 2019 zu einer strengen Untergruppe von ECMascript.[23][24]

Datentypen

Die grundlegenden Datentypen von JSON sind:

  • Nummer: Eine signierte Dezimalzahl, die einen fraktionalen Teil enthalten und exponentiell verwendet werden kann E Notationkönnen aber nicht in Zahlen enthalten, z. Nan. Das Format unterscheidet keinen Unterschied zwischen ganzzahliger und schwimmender Punkt. JavaScript verwendet IEEE-754 Doppelprezisions-Gleitpunktformat für alle seine numerischen Werte (bis später auch unterstützt auch Bigint[25]), aber andere Sprachen, die JSON implementieren, können Zahlen unterschiedlich codieren.
  • Saite: eine Sequenz von Null oder mehr Unicode Figuren. Saiten werden mit doppelten Anführungszeichen abgegrenzt und unterstützen einen Backslash Flucht Syntax.
  • Boolesche: einer der Werte Stimmt oder FALSCH
  • Array: ein Bestellliste von Null oder mehr Elementen, von denen jeder von jedem Typ sein kann. Arrays verwenden eckige Klammer Notation mit von Kommas getrennten Elementen.
  • Objekt: eine Sammlung von Namenswertenpaare wo die Namen (auch Schlüssel genannt) Saiten sind. Der aktuelle ECMA -Standard heißt: "Die JSON -Syntax verleiht den als Namen verwendeten Zeichenfolgen keine Einschränkungen, erfordert keine eindeutige Namenszeichenfolgen und weist der Reihenfolge der Namen/Wert -Paare keine Bedeutung zu."[26] Objekte werden mit Grenz gemacht mit geschweifte Klammern und verwenden Sie Kommas, um jedes Paar zu trennen, während innerhalb jedes Paares der Dickdarm ':' Zeichen trennt den Schlüssel oder den Namen von seinem Wert.
  • Null: ein leerer Wert, verwendete das Wort Null

Whitespace ist um oder zwischen syntaktischen Elementen um oder ignoriert und ignoriert (Werte und Interpunktion, nicht innerhalb eines Zeichenfolgewerts). Für diesen Zweck werden vier spezifische Zeichen als Whitespace angesehen: Platz, Horizontale Registerkarte, Zeilenvorschub, und Kutschenrückkehr. Insbesondere die Byte -Bestellmarke darf nicht durch eine konforme Implementierung erzeugt werden (obwohl sie beim Parsen von JSON akzeptiert werden kann). JSON liefert keine Syntax für Kommentare.[27]

Frühe Versionen von JSON (wie angegeben von RFC 4627) Erforderlich, dass ein gültiger JSON -Text nur aus einem Objekt oder einem Array -Typ bestehen muss, der andere Typen enthalten könnte. Diese Einschränkung wurde eingelegt RFC 7158, wo ein JSON -Text als serialisierten Wert neu definiert wurde.

Zahlen in JSON sind in Bezug auf ihre Darstellung innerhalb der Programmiersprachen agnostisch. Während dies die Anzahl der Zahlen ermöglicht willkürliche Präzision Um serialisiert zu werden, kann dies zu Tragbarkeitsproblemen führen. Da beispielsweise keine Differenzierung zwischen Ganzzahl- und Floating-Punkt-Werten durchgeführt wird, können einige Implementierungen behandelt werden 42, 42.0, und 4.2e+1 als die gleiche Zahl, obwohl andere nicht. Der JSON -Standard enthält keine Anforderungen an Implementierungsdetails wie z. Überlauf, Unterfluss, Präzisionsverlust, Rundung oder Unterzeichnete Nullen, aber es empfiehlt, nicht mehr als zu erwarten IEEE 754 Binary64 Präzision für "gute Interoperabilität". Es gibt keinen inhärenten Präzisionsverlust bei der Serialisierung einer binären Darstellung auf maschineller Ebene einer schwimmenden Punktzahl (wie Binary64) in eine menschlich-lesbare Dezimalrepräsentation (wie Zahlen in JSON) und zurück, da es veröffentlichte Algorithmen gibt, die genau dies genau tun und optimal.[28]

Die Kommentare wurden absichtlich von JSON ausgeschlossen. 2012 beschrieb Douglas Crockford seine Entwurfsentscheidung so: "Ich habe Kommentare von JSON entfernt, weil ich gesehen habe, wie Leute sie benutzten, um Parsen -Richtlinien zu halten, eine Praxis, die die Interoperabilität zerstört hätte."[27]

Json macht "Trailing Commas" nicht aus, a Komma Nach dem letzten Wert innerhalb einer Datenstruktur.[29] Nachlaufkomma sind ein häufiges Merkmal von JSON -Derivate Um die Benutzerfreundlichkeit zu verbessern.[30]

Semantik

Während JSON einen syntaktischen Rahmen für den Datenaustausch bietet, erfordert ein eindeutiger Datenaustausch auch eine Übereinstimmung zwischen Produzent und Verbraucher über die Semantik der spezifischen Verwendung der JSON -Syntax.[31] Ein Beispiel dafür, wo eine solche Vereinbarung erforderlich ist, ist die Serialisierung von Datentypen, die durch die definiert sind JavaScript -Syntax das sind nicht Teil des JSON -Standards, z. B. Datum, Funktion, regulärer Ausdruck und nicht definiert.[32]

Metadaten und Schema

Das offizielle Mime Typ denn JSON -Text ist "Anwendung/JSON",",[33] Und die meisten modernen Implementierungen haben dies übernommen. Der inoffizielle Mime -Typ "Text/JSON"oder der Inhaltstyp"Text/JavaScript"Werden auch aus älteren Gründen von vielen Dienstanbietern, Browsern, Servern, Webanwendungen, Bibliotheken, Frameworks und APIs unterstützt. Bemerkenswerte Beispiele sind die Google -Search -API.[34] Yahoo !,[34][35] Flickr,[34] Facebook -API,[36] Auftriebsgerüst,[37] und Dojo Toolkit 0.4.[38]

JSON -Schema Gibt ein JSON-basiertes Format an, um die Struktur von JSON-Daten zur Validierung, Dokumentation und Interaktionskontrolle zu definieren. Es enthält einen Vertrag für die von einer bestimmten Anwendung erforderlichen JSON -Daten und wie diese Daten geändert werden können.[39] Das JSON -Schema basiert auf den Konzepten von XML -Schema (XSD) Aber ist JSON-basiert. Wie in XSD können die gleichen Serialisierungs-/Deserialisierungstools sowohl für das Schema als auch für die Daten verwendet werden, und es ist selbst beschrieben. Es ist in einem spezifiziert Internetentwurf am IETF, derzeit im Jahr 2020-12, der am 28. Januar 2021 veröffentlicht wurde.[40] Für verschiedene Programmiersprachen stehen mehrere Validatoren zur Verfügung.[41] jeweils mit unterschiedlichem Konformitätsniveau. Die Standard -Dateiname -Erweiterung ist .json.[42]

Der JSON -Standard unterstützt kein Objekt Verweise, aber an Ietf Der Entwurfsstandard für JSON-basierte Objektreferenzen gibt es.[43]

Verwendet

JSON-RPC ist ein Remote -Verfahrensanruf (RPC) -Protokoll, das auf JSON basiert, als Ersatz für XML-RPC oder SEIFE. Es ist ein einfaches Protokoll, das nur eine Handvoll Datentypen und -befehle definiert. Mit JSON-RPC sendet ein System Benachrichtigungen (Informationen an den Server, für die keine Antwort erforderlich ist) und mehrere Aufrufe an den Server, der aus der Reihenfolge beantwortet werden kann.

Asynchroner JavaScript und JSON (oder ajaj) bezieht sich auf dasselbe Dynamische Webseite Methodik als Ajax, aber statt XmlJSON ist das Datenformat. Ajaj ist eine Webentwicklungstechnik, die die Fähigkeit von a bietet Website um neue Daten anzufordern, nachdem sie in die geladen wurden Webbrowser. In der Regel werden neue Daten vom Server als Antwort auf Benutzeraktionen auf dieser Webseite zurückgelegt. Zum Beispiel, was der Benutzer in a Suchbox, Client-Seite-Code Sendet dann an den Server, der sofort mit a reagiert Dropdown-Liste von Matching Datenbank Artikel.

Während JSON ein Datenserialisierungsformat ist, hat es sich gesehen, aber es hat sich gesehen ad hoc Verwendung als a Konfigurationssprache. In diesem Anwendungsfall Unterstützung für Kommentare und andere Merkmale wurden als nützlich angesehen, was zu mehreren nicht standardmäßigen JSON geführt hat Supersets erschaffen werden. Unter ihnen sind Hjson,[44] Hoconund JSON5 (was trotz seines Namens nicht die fünfte Version von JSON ist).[45][46] Das Hauptziel von Version 1.2 von Yaml sollte das nicht standardmäßige Format zu einem strengen JSON -Superset machen.[47]

Im Jahr 2012 hatte Douglas Crockford dies zu Kommentaren in JSON zu sagen, wenn sie als Konfigurationssprache verwendet werden: "Ich weiß, dass das Fehlen von Kommentaren einige Leute traurig macht, aber dies sollte nicht. Angenommen, Sie verwenden JSON, um Konfigurationsdateien zu behalten, welche welchen Sie möchten mit Anmerkungen versehen. Gehen[48] Bevor Sie es Ihrem JSON -Parser übergeben. "[27]

JSON ist als ein gedacht Datenserialisierung Format. Das Design als Untergruppe von JavaScript kann jedoch zu dem Missverständnis führen, dass es sicher ist, JSON -Texte an das JavaScript weiterzuleiten eval() Funktion. Dies ist aufgrund bestimmter gültiger JSON -Texte nicht sicher, insbesondere solche, die enthalten sind U+2028 Zeilenabscheider oder U+2029 AbsatzabscheiderDer gültige JavaScript -Code, bis JavaScript -Spezifikationen im Jahr 2019 aktualisiert wurden, und so dass ältere Motoren dies möglicherweise nicht unterstützen.[49] Um die vielen Fallstricke zu vermeiden, die durch die Ausführung beliebiger Code aus dem Internet verursacht werden, ist eine neue Funktion, JSON.parse() wurde zuerst zur fünften Ausgabe von ECMascript hinzugefügt,[50] Was ab 2017 von allen großen Browsern unterstützt wird. Für nicht unterstützte Browser wird eine API-kompatible JavaScript-Bibliothek von bereitgestellt Douglas Crockford.[51] Darüber hinaus der TC39 -Vorschlag "Subsume JSON" gemacht ECMaskript Ein strenger JSON -Superset zur Revision der Sprache 2019.[23][24]

Verschiedene JSON -Parser -Implementierungen haben gelitten Denial-of-Service-Angriff und Verwundbarkeit der Massenzuordnung.[52][53]

MongoDB Verwendet JSON-ähnliche Daten für seine dokumentorientierte Datenbank.

Vergleich mit anderen Formaten

JSON wird als Alternative mit geringem Überkopf zu XML gefördert, da beide Formate in den realen Situationen, in denen sie häufig verwendet werden, weit verbreitet für die Erstellung, Lesen und Dekodierung in realen Welt.[54] Abgesehen von XML könnten Beispiele umfassen CSV und Yaml (ein Superset von JSON). Ebenfalls, Google Protocol Puffer Kann diese Rolle übernehmen, obwohl es sich nicht um eine Datenaustauschsprache handelt.

Yaml

Yaml Version 1.2 ist ein Superset von JSON; Frühere Versionen waren nicht streng kompatibel. Zum Beispiel einem Schrägstrich entkommen / mit einem Backglash \ ist in JSON gültig, war aber in Yaml nicht gültig.[47] Yaml unterstützt Kommentare, während JSON nicht.[47][45][27]

Xml

Xml wurde verwendet, um strukturierte Daten zu beschreiben und Objekte zu serialisieren. Es gibt verschiedene XML-basierte Protokolle, um dieselbe Art von Datenstrukturen wie JSON für dieselbe Art von Datenaustauschzwecken darzustellen. Daten können auf verschiedene Weise in XML codiert werden. Die expansivste Form, die mit Tag -Paaren verwendet wird, führt zu einer viel größeren (in Zeichenanzahl) Darstellung als JSON />Die Darstellung ist oft ungefähr so ​​groß wie JSON oder nur etwas größer. Ein XML -Attribut kann jedoch nur einen einzelnen Wert haben und jedes Attribut kann in jedem Element höchstens einmal angezeigt werden.

XML trennt "Daten" von "metadata" (über die Verwendung von Elementen und Attributen), während JSON kein solches Konzept hat.

Ein weiterer wichtiger Unterschied ist die Adressierung von Werten. JSON hat Objekte mit einem einfachen "Schlüssel" zum "Wert" -Kartierung, während in der XML -Adressierung auf "Knoten" stattfindet, die alle eine eindeutige ID über den XML -Prozessor erhalten. Zusätzlich definiert der XML -Standard ein gemeinsames Attribut xml:idDas kann vom Benutzer verwendet werden, um eine ID explizit festzulegen.

XML -Tag -Namen können keine der Zeichen enthalten ! "#$%& '()*+,/; <=>?@[\]^` {|} ~noch ein Weltraumcharakter und kann nicht mit beginnen mit -, ., oder eine numerische Ziffer, während JSON -Tasten können (auch wenn Anführungszeichen und Backslash entkommen werden müssen).[55]

XML -Werte sind Zeichenfolgen von Figuren, ohne eingebaute Geben Sie Sicherheit ein. XML hat das Konzept von Schema, das ermöglicht eine starke Typisierung, benutzerdefinierte Typen, vordefinierte Tags und formale Struktur, die eine formale Validierung eines XML-Streams ermöglichen. JSON hat verschiedene Typen integriert und ein ähnliches Schema-Konzept in JSON -Schema.

XML unterstützt Kommentare, während JSON nicht.[56][27]

Derivate

Auf oder aus der JSON -Spezifikation wurden mehrere Serialisierungsformate aufgebaut. Beispiele beinhalten

Siehe auch

Verweise

  1. ^ "Douglas Crockford: Die JSON -Saga". Youtube. 28. August 2011. Abgerufen 21. Februar, 2022.
  2. ^ "Ein tiefer Blick auf JSON vs. XML, Teil 1: Die Geschichte von jedem". Toptal Engineering Blog. Abgerufen 31. Dezember, 2021.
  3. ^ a b c "ISO/IEC 21778: 2017". ISO. Abgerufen 29. Juli, 2019.
  4. ^ "Standard ECMA -404 - Die JSON -Datenwechselsyntax" (PDF). ECMA International. Dezember 2017. p. 1, Fußnote. Abgerufen 27. Oktober, 2019.
  5. ^ ECMA-404: Das JSON-Datenwechselformat (PDF) (1. Aufl.). Genf: ECMA International. Oktober 2013.
  6. ^ Nemeth, Evi; Snyder, Garth; Hein, Trent R.; Whaley, Ben; Mackin, Dan (2017). "19: Webhosting". UNIX- und Linux -Systemadministrationshandbuch (5. Aufl.). Addison-Wesley Professional. ISBN 9780134278292. Abgerufen 29. Oktober, 2019.
  7. ^ "Douglas Crockford: The JSON Saga - Transcript Vids". Transcriptvids.com. Abgerufen 29. Oktober, 2019.
  8. ^ a b "Das JSON -Datenwechselformat" (PDF). ECMA International. Oktober 2013. Abgerufen 24. Oktober, 2019.
  9. ^ a b "Das JavaScript -Objektnotationsformat (JSON) Data Interchange -Format". Ietf. Dezember 2017. Abgerufen 16. Februar, 2018.
  10. ^ Bray, Tim. "Json Redux alias RFC7159". Laufend. Abgerufen 16. März, 2014.
  11. ^ "Inoffizielle Java -Geschichte". Edu4java. 26. Mai 2014. archiviert von das Original am 26. Mai 2014. Abgerufen 30. August 2019. Im Jahr 1996 startet Macromedia die Flash -Technologie, die den Raum von Java und ActiveX einnimmt, und wird zum De -facto -Standard für die Animation auf der Client -Seite.
  12. ^ "Douglas Crockford - die JSON -Saga". Youtube. 28. August 2011. Abgerufen 23. September, 2016.
  13. ^ "Chip Morningstar Biographie". n.d.
  14. ^ "State Software bricht durch die Web -App -Entwicklungsbarriere". WashingtonIndependant.com. 2013.
  15. ^ "Json". json.org.
  16. ^ Yahoo !. "Mit JSON mit Yahoo! Webdiensten verwenden". Archiviert von das Original am 11. Oktober 2007. Abgerufen 3. Juli, 2009.
  17. ^ Crockford, Douglas (28. Mai 2009). "JSON vorstellen". json.org. Abgerufen 3. Juli, 2009. Es basiert auf einer Teilmenge der JavaScript -Programmiersprache, Standard ECMA -262 3. Ausgabe - Dezember 1999.
  18. ^ "Geschichte für den Entwurf-ITF-Jsonbis-RFC7159BIS-04". IETF DataTracker. Internettechnik-Arbeitsgruppe. Abgerufen 24. Oktober, 2019. 2017-12-13 [...] RFC veröffentlicht
  19. ^ "RFC 8259 - Das Datenaustauschformat für JavaScript -Objektnotation (JSON)". IETF DataTracker. Internettechnik-Arbeitsgruppe. Abgerufen 24. Oktober, 2019. Typ: RFC - Internet Standard (Dezember 2017; Errata); Veraltete RFC 7159; Auch als STD 90 bekannt
  20. ^ Apache und die JSON -Lizenz auf lwn.net von Jake Edge (30. November 2016)
  21. ^ Douglas Crockford (10. Juli 2016). "JSON in JavaScript". Archiviert von das Original am 10. Juli 2016. Abgerufen 13. August, 2016. JSON ist eine Untergruppe der Objektwörtlernotation von JavaScript.
  22. ^ Holm, Magnus (15. Mai 2011). "JSON: Die JavaScript -Untergruppe, die es nicht ist". Das zeitlose Repository. Archiviert von das Original am 13. Mai 2012. Abgerufen 23. September, 2016.
  23. ^ a b c "Subume JSON: Vorschlag, alle JSON-Text gültig zu machen, ECMA-262". ECMA TC39. 23. August 2019. Abgerufen 27. August, 2019.
  24. ^ a b "Fortschritte auf Stufe 4-TC39/Vorschlag-Json-Superset". GitHub. 22. Mai 2018.
  25. ^ "Bigint - MDN Web Doc Glossar". Mozilla. Abgerufen 18. Oktober, 2020.
  26. ^ Die JSON -Datenwechselsyntax (PDF) (2. Aufl.). ECMA International. Dezember 2017. p. 3. Die JSON -Syntax verleiht den als Namen verwendeten Zeichenfolgen keine Einschränkungen, erfordert nicht, dass die Namenszeichenfolgen eindeutig sind und der Reihenfolge der Namen/Wertpaare keine Bedeutung zuweist.{{}}: CS1 Wartung: Datum und Jahr (Link)
  27. ^ a b c d e Crockford, Douglas (30. April 2012). "Kommentare in JSON". Archiviert von das Original am 4. Juli 2015. Abgerufen 30. August, 2019. Ich habe Kommentare von JSON entfernt, weil ich gesehen habe, wie Leute sie benutzten, um Parsen -Richtlinien zu halten, eine Praxis, die die Interoperabilität zerstört hätte. Ich weiß, dass das Fehlen von Kommentaren einige Leute traurig macht, aber es sollte nicht. Nehmen wir an, Sie verwenden JSON, um Konfigurationsdateien aufzubewahren, die Sie mit Anmerkungen versehen möchten. Gehen Sie voran und setzen Sie alle Kommentare ein, die Sie mögen. Dann leiten Sie es durch JSmin, bevor Sie es Ihrem JSON -Parser übergeben.
  28. ^ Andrysco, Marc; Jhala, Ranjit; Lerner, Sorin. "Drucken von Gleitkomma -Zahlen - eine immer korrekte Methode" (PDF). Abgerufen 27. Juli, 2019.
  29. ^ Die JSON -Datenwechselsyntax (PDF) (2. Aufl.). ECMA International. Dezember 2017. p. 11. Ein einzelnes Komma -Token trennt a Wert aus einem folgenden Namen.{{}}: CS1 Wartung: Datum und Jahr (Link)
  30. ^ "JSON5". JSON5. Archiviert von das Original am 29. November 2020. Abgerufen 16. Dezember, 2020.
  31. ^ "Die JSON Data Interchange Syntax" (PDF). ECMA International. Dezember 2017. Abgerufen 27. Oktober, 2019. Die JSON -Syntax ist keine Spezifikation eines vollständigen Datenaustauschs. Ein sinnvoller Datenaustausch erfordert eine Übereinstimmung zwischen einem Produzenten und Verbraucher über die Semantik, die einer bestimmten Verwendung der JSON -Syntax beigefügt ist. Was JSON bietet, ist das syntaktische Rahmen, an den solche Semantik angehängt werden kann
  32. ^ "ECMascript 2019 Sprachspezifikation" (PDF). ECMA International. Juni 2019. archiviert von das Original (PDF) am 12. April 2015. Abgerufen 27. Oktober, 2019.
  33. ^ "Medientypen". Iana.org. Abgerufen 13. September, 2015.
  34. ^ a b c "Handle Application/JSON & Text/JSON von Benschwarz · Pull Request #2 · Mislav/Faraday-Stack". GitHub. Abgerufen 13. September, 2015.
  35. ^ "Yahoo !, JavaScript und JSON". Programmierbar. 16. Dezember 2005. Abgerufen 13. September, 2015.
  36. ^ "Machen Sie JSON -Anfragen zu.. GitHub. Abgerufen 13. September, 2015.
  37. ^ "Lift/Req.scala bei Master · Lift/Lift · Github". GitHub. Abgerufen 13. September, 2015.
  38. ^ "Browserio.js in Legacy/Zweigen/0.4/src/io - Dojo Toolkit". dojotoolkit.org. Archiviert von das Original am 10. Januar 2016. Abgerufen 13. September, 2015.
  39. ^ "JSON-Schema und Hyperschema". json-schema.org. Abgerufen 8. Juni, 2021.
  40. ^ "Drafthandrews-Json-Schema-00-JSON-Schema: Ein Medientyp zur Beschreibung von JSON-Dokumenten". json-schema.org/. 28. Januar 2021. Abgerufen 8. Juni, 2021.
  41. ^ "JSON -Schema -Implementierungen". json-schema.org. Abgerufen 8. Juni, 2021.
  42. ^ "11. IANA Überlegungen". RFC 8259: JSON -Datenwechselformat JavaScript Object Notation (JSON). Ietf. Dezember 2017.
  43. ^ Zyp, Kris (16. September 2012). Bryan, Paul C. (Hrsg.). "JSON-Referenz: Draft-Pbryan-Zyp-Json-Ref-03". Internettechnik-Arbeitsgruppe.
  44. ^ Edelman, Jason; Lowe, Scott; Oswalt, Matt. Programmierbarkeit und Automatisierung von Netzwerk. O'Reilly Media. Für die Datenrepräsentation können Sie eines der folgenden Auswahlmöglichkeiten auswählen: Yaml, Yamlex, JSON, JSON5, HJSON oder sogar Python
  45. ^ a b McCombs, Thayne (16. Juli 2018). "Warum JSON keine gute Konfigurationssprache ist". Lucid Diagramm. Abgerufen 15. Juni, 2019.
  46. ^ "Hocon (menschlich-optimierte Konfigurationsobjektnotation)". GitHub. 28. Januar 2019. Abgerufen 28. August, 2019. Das Hauptziel ist: Halten Sie die Semantik (Baumstruktur; Set von Typen; Codierung/Flucht) vor JSON, machen Sie es jedoch bequemer als ein menschlich-edierbares Konfigurationsdateiformat.
  47. ^ a b c "Yaml ist keine Markup -Sprache (YAML ™) Version 1.2". yaml.org. Abgerufen 13. September, 2015.
  48. ^ Crockford, Douglas (16. Mai 2019). "Jsmin". Abgerufen 12. August, 2020. JSmin [2001] ist ein Minifikationswerkzeug, das Kommentare und unnötige Whitespace aus JavaScript -Dateien entfernt.
  49. ^ "JSON: Die JavaScript -Untergruppe, die es nicht ist". Magnus Holm. Archiviert von das Original am 13. Mai 2012. Abgerufen 16. Mai, 2011.
  50. ^ "ECMascript fünfte Ausgabe" (PDF). Archiviert von das Original (PDF) am 14. April 2011. Abgerufen 18. März, 2011.
  51. ^ "Douglascrockford/JSON-JS". GitHub. 13. August 2019.
  52. ^ "Denial of Service und unsichere Anfälligkeit der Objekterstellung in JSON (CVE-2013-0269)". Abgerufen 5. Januar, 2016.
  53. ^ "Microsoft .NET Framework JSON Content Procesation Denial of Service Schwachstellen". Abgerufen 5. Januar, 2016.
  54. ^ "JSON: Die fettfreie Alternative zu XML". json.org. Abgerufen 14. März, 2011.
  55. ^ "XML 1.1 Spezifikation". World Wide Web Konsortium. Abgerufen 26. August, 2019.
  56. ^ Saternos, Casimir (2014). Client-Server-Web-Apps mit JavaScript und Java. p. 45. ISBN 9781449369316.
  57. ^ "RFC 7946 - Das Geojson -Format". Ietf DataTracker. August 2016. Abgerufen 17. Juni, 2022.
  58. ^ "JSON → URL -Spezifikation". Laufend. Abgerufen 9. April, 2021.
  59. ^ "JSON-LD 1.1". World Wide Web Konsortium. 16. Juli 2020. Abgerufen 17. Juni, 2022.
  60. ^ "JSON-RPC". JSONRPC.org. Abgerufen 17. Juni, 2022.
  61. ^ "JSONML (JSON Markup Language)". JSONML.org. Abgerufen 17. Juni, 2022.
  62. ^ "Was ist eine Lottie -Animation? - LotTiefiles". LotTiefiles.com. Abgerufen 11. Januar, 2022.
  63. ^ "FASTERXML/Smile-Format-Specification: neues Zuhause für Lächelnformat". GitHub. Abgerufen 17. Juni, 2022.
  64. ^ "Universal Binary JSON Spezifikation - Die allgemein kompatible Formatspezifikation für binäre JSON". ubjson.org. Abgerufen 17. Juni, 2022.

Externe Links