<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=JSON</id>
	<title>JSON - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=JSON"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=JSON&amp;action=history"/>
	<updated>2026-05-18T22:21:10Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=JSON&amp;diff=363392&amp;oldid=prev</id>
		<title>imported&gt;Faisalhussain2008: Erkennt automatisch die Probleme im JSON-Code und behebt sie.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=JSON&amp;diff=363392&amp;oldid=prev"/>
		<updated>2026-05-01T05:14:19Z</updated>

		<summary type="html">&lt;p&gt;Erkennt automatisch die Probleme im JSON-Code und behebt sie.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Dateiformat&lt;br /&gt;
| Logo = [[Datei:JSON vector logo.svg]]&lt;br /&gt;
| MIME = application/json&lt;br /&gt;
| Dateiendung = .json&lt;br /&gt;
| Standard = &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;8259&amp;lt;/nowiki&amp;gt;,&amp;lt;ref name=&amp;quot;RFC8259&amp;quot; /&amp;gt; ECMA-404&amp;lt;ref name=&amp;quot;ECMA-404&amp;quot; /&amp;gt;&lt;br /&gt;
| Website = https://json.org/&lt;br /&gt;
}}&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;JavaScript Object Notation&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;JSON&amp;#039;&amp;#039;&amp;#039; [{{IPA|ˈdʒeɪsən}}]) ist ein kompaktes [[Datenformat]] in einer einfach lesbaren Textform für den [[Datenaustausch]] zwischen Anwendungen. JSON ist von Programmiersprachen unabhängig. [[Parser]] und Generatoren existieren in den meisten verbreiteten Sprachen.&lt;br /&gt;
&lt;br /&gt;
JSON wurde ursprünglich 2001&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.youtube.com/watch?v=-C-JoyNuQJs |titel=Douglas Crockford: The JSON Saga (Talk bei Yahoo!) |sprache=en |abruf=2025-09-18}}&amp;lt;/ref&amp;gt; von Douglas Crockford spezifiziert.&amp;lt;ref name=&amp;quot;RFC7159&amp;quot; /&amp;gt; Derzeit (Stand Ende 2017) wird es durch zwei inhaltlich gleiche Standards spezifiziert – &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;8259&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC8259&amp;quot; /&amp;gt; sowie ECMA-404.&amp;lt;ref name=&amp;quot;ECMA-404&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsatzgebiete ==&lt;br /&gt;
JSON wird zur Übertragung und zum Speichern strukturierter Daten eingesetzt. Es dient als Datenformat bei der Datenübertragung ([[Serialisierung]]). Insbesondere bei [[Webanwendung]]en und [[Mobile App|mobilen Apps]] wird es in Verbindung mit [[JavaScript]], [[Ajax (Programmierung)|Ajax]] oder [[WebSocket]]s zum Übertragen von Daten zwischen dem Client und dem Server häufig genutzt.&lt;br /&gt;
&lt;br /&gt;
== Datenstruktur und Formatdefinition ==&lt;br /&gt;
=== Zeichencodierung und Datentypen ===&lt;br /&gt;
Die Daten können beliebig verschachtelt werden, beispielsweise ist eine indizierte Liste (englisch „array“) von Objekten möglich, welche wiederum Arrays oder Objekte enthalten. Als [[Zeichenkodierung]] benutzt JSON standardmäßig [[UTF-8]]. Auch [[UTF-16]] und [[UTF-32]] sind möglich.&lt;br /&gt;
&lt;br /&gt;
JSON kennt die folgenden Typen von &amp;#039;&amp;#039;Elementen&amp;#039;&amp;#039;.&lt;br /&gt;
; [[Nullwert]]&lt;br /&gt;
: wird durch das Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; dargestellt.&lt;br /&gt;
; [[Boolesche Variable|Boolescher Wert]]&lt;br /&gt;
: wird durch die Schlüsselwörter &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; dargestellt. Dies sind &amp;#039;&amp;#039;keine&amp;#039;&amp;#039; Zeichenketten. Sie werden daher, wie &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;nicht&amp;#039;&amp;#039; in [[Anführungszeichen]] gesetzt.&lt;br /&gt;
; [[Zahl]]&lt;br /&gt;
: ist eine Folge der Ziffern &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;–&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;. Diese Folge kann durch ein [[Minuszeichen|negatives Vorzeichen]] &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; eingeleitet und durch einen [[Dezimalpunkt]] &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; unterbrochen sein. Die Zahl kann durch die Angabe eines Exponenten &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; ergänzt werden, dem ein optionales [[Vorzeichen (Zahl)|Vorzeichen]] &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; und eine Folge der Ziffern &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;–&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; folgt.&lt;br /&gt;
; [[Zeichenkette]]&lt;br /&gt;
: beginnt und endet mit doppelten geraden Anführungszeichen (&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;). Sie kann [[Unicode]]-Zeichen und durch &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; eingeleitete [[Escape-Sequenz]]en enthalten.&lt;br /&gt;
; [[Array (Datentyp)|Array]]&lt;br /&gt;
: beginnt mit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; und endet mit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;. Es enthält eine durch Kommata geteilte, indizierte Liste von &amp;#039;&amp;#039;Elementen&amp;#039;&amp;#039; gleichen oder verschiedenen Typs. Leere Arrays sind zulässig.&lt;br /&gt;
&lt;br /&gt;
; [[Assoziatives Datenfeld|Objekt]]&lt;br /&gt;
: beginnt mit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; und endet mit &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;. Es enthält eine durch Kommata geteilte, ungeordnete Liste von &amp;#039;&amp;#039;Eigenschaften&amp;#039;&amp;#039;. Objekte ohne Eigenschaften („leere Objekte“) sind zulässig.&lt;br /&gt;
; Eigenschaft&lt;br /&gt;
: besteht aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt (&amp;lt;code&amp;gt;Schlüssel : Wert&amp;lt;/code&amp;gt;). Die Schlüssel sollten eindeutig sein, da unterschiedliche Parser mit mehrfach vorkommenden Schlüsseln unterschiedlich umgehen. Während ECMA-404 keine Eindeutigkeit voraussetzt, fordert &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;7159&amp;lt;/nowiki&amp;gt;,&amp;lt;ref name=&amp;quot;RFC7159&amp;quot; /&amp;gt; dass Schlüssel innerhalb eines Objekts eindeutig sind.&lt;br /&gt;
:* der &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039; ist eine &amp;#039;&amp;#039;Zeichenkette&amp;#039;&amp;#039;.&lt;br /&gt;
:* der &amp;#039;&amp;#039;&amp;#039;Wert&amp;#039;&amp;#039;&amp;#039; ist ein beliebiges &amp;#039;&amp;#039;Element&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Nicht signifikante [[Leerraum]]-Zeichen sind erlaubt, also Leerzeichen (Unicode U+0020), horizontale Tabs (U+0009), Zeilenumbrüche mittels LF und/oder CR (U+000A bzw. U+000D).&amp;lt;ref&amp;gt;{{RFC-Internet |Autor=Douglas Crockford |RFC=4627 |Titel=The application/json Media Type for JavaScript Object Notation (JSON) |Datum=2006-07 |Abschnitt=2 |Abschnittstitel=JSON Grammar}}&amp;lt;/ref&amp;gt; Diese Zeichen werden außerhalb von Zeichenketten bei der Interpretation ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Einschränkungen ==&lt;br /&gt;
Im Gegensatz zu JavaScript und vielen anderen Programmiersprachen erlaubt JSON für Zahlen nicht die in [[IEEE 754]] definierten Sonderwerte für [[Unendlich (Mathematik)|Unendlich]] und [[NaN]].&amp;lt;ref name=&amp;quot;RFC7159&amp;quot; /&amp;gt; Außerdem fehlen Wertetypen für zum Beispiel Datums- und Zeitwerte, [[Regulärer Ausdruck|reguläre Ausdrücke]], [[Anonyme Funktion|Funktionsliterale]] und [[Ausnahmebehandlung|Fehlertypen]].&amp;lt;ref name=&amp;quot;RFC7159&amp;quot; /&amp;gt; Beim Serialisieren nach JSON können solche nicht abbildbaren Werte entweder durch &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;  ersetzt werden, oder sie müssen auf andere Weise umgesetzt werden. Bei Datums- und Zeit-Werten ist beispielsweise die Konvertierung in eine Zeichenkette gemäß [[ISO 8601]] üblich.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://docs.jsonata.org/date-time#json-and-iso-8601 |titel=Date/Time processing · JSONata |werk=docs.jsonata.org |sprache=en |abruf=2023-05-21}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JSON unterstützt ebenfalls keine [[Kommentar (Programmierung)|Kommentare]], die beim Einlesen der Daten ignoriert werden würden.&lt;br /&gt;
&lt;br /&gt;
Um diese Einschränkungen zu umgehen, erlauben viele JSON-[[Programmbibliothek]]en (optional) die Verletzung des JSON-Standards, womit beispielsweise Werte für Unendlich und NaN&amp;lt;ref&amp;gt;{{Internetquelle |url=https://fasterxml.github.io/jackson-core/javadoc/2.10/com/fasterxml/jackson/core/json/JsonReadFeature.html#ALLOW_NON_NUMERIC_NUMBERS |titel=JsonReadFeature (Jackson-core 2.10.0 API) |sprache=en |abruf=2023-05-21}}&amp;lt;/ref&amp;gt; unterstützt werden können oder wodurch Kommentare ignoriert werden, statt zu Fehlern zu führen&amp;lt;ref&amp;gt;{{Internetquelle |url=https://fasterxml.github.io/jackson-core/javadoc/2.10/com/fasterxml/jackson/core/json/JsonReadFeature.html#ALLOW_JAVA_COMMENTS |titel=JsonReadFeature (Jackson-core 2.10.0 API) |sprache=en |abruf=2023-05-21}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Ein Beispiel eines Kreditkartenkunden.&amp;lt;!-- Bei Änderungen der folgenden Beispiele bitte auch unten stehende Byte-Zahlen anpassen! --&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Herausgeber&amp;quot;: &amp;quot;Xema&amp;quot;,&lt;br /&gt;
  &amp;quot;Nummer&amp;quot;: &amp;quot;1234-5678-9012-3456&amp;quot;,&lt;br /&gt;
  &amp;quot;Deckung&amp;quot;: 2e+6,&lt;br /&gt;
  &amp;quot;Waehrung&amp;quot;: &amp;quot;EURO&amp;quot;,&lt;br /&gt;
  &amp;quot;Inhaber&amp;quot;:&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Name&amp;quot;: &amp;quot;Mustermann&amp;quot;,&lt;br /&gt;
    &amp;quot;Vorname&amp;quot;: &amp;quot;Max&amp;quot;,&lt;br /&gt;
    &amp;quot;Teilnahme am Bonusprogramm&amp;quot;: true,&lt;br /&gt;
    &amp;quot;Hobbys&amp;quot;: [&amp;quot;Reiten&amp;quot;, &amp;quot;Golfen&amp;quot;, &amp;quot;Lesen&amp;quot;],&lt;br /&gt;
    &amp;quot;Alter&amp;quot;: 42,&lt;br /&gt;
    &amp;quot;Kinder&amp;quot;: [],&lt;br /&gt;
    &amp;quot;Partner&amp;quot;: null&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON Schema ==&lt;br /&gt;
JSON Schema gibt ein JSON-basiertes Format an, um die Struktur von JSON-Daten für die [[Validierung (Informatik)|Validierung]], Dokumentation und Interaktionssteuerung zu definieren. Es enthält einen Vertrag für die JSON-Daten, die für eine bestimmte Anwendung erforderlich sind, und wie diese Daten geändert werden können.&lt;br /&gt;
&lt;br /&gt;
JSON Schema basiert auf den Konzepten von [[XML Schema]] (XSD), ist jedoch JSON-basiert. Wie in XSD können dieselben Serialisierungs- und Deserialisierungsprogramme sowohl für das Schema als auch für die Daten verwendet werden. Es ist selbstbeschreibend und in einem Internet-Entwurf der [[Internet Engineering Task Force]] festgelegt. Für verschiedene [[Programmiersprache]]n stehen mehrere [[Validator]]en mit jeweils unterschiedlichen Konformitätsstufen zur Verfügung.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://json-schema.org/ |titel=JSON Schema |sprache=en |abruf=2020-08-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;$schema&amp;quot;: &amp;quot;http://json-schema.org/draft/2019-09/schema&amp;quot;,&lt;br /&gt;
  &amp;quot;title&amp;quot;: &amp;quot;Politiker&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;required&amp;quot;: [&amp;quot;Vorname&amp;quot;, &amp;quot;Nachname&amp;quot;, &amp;quot;Geburtsdatum&amp;quot;, &amp;quot;Nationalität&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;:&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Vorname&amp;quot;:&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;Nachname&amp;quot;:&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;Geburtsdatum&amp;quot;:&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;date&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;Nationalität&amp;quot;:&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;Partei&amp;quot;:&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;:&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;Name&amp;quot;:&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;Hauptsitz&amp;quot;:&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;Gründungsdatum&amp;quot;:&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;date&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;Gründungsort&amp;quot;:&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;Amt&amp;quot;:&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das obige JSON Schema kann verwendet werden, um die Gültigkeit des folgenden Datenblocks zu testen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Vorname&amp;quot;: &amp;quot;Ronald&amp;quot;,&lt;br /&gt;
  &amp;quot;Nachname&amp;quot;: &amp;quot;Reagan&amp;quot;,&lt;br /&gt;
  &amp;quot;Geburtsdatum&amp;quot;: &amp;quot;1911-02-06&amp;quot;,&lt;br /&gt;
  &amp;quot;Nationalität&amp;quot;: &amp;quot;US-amerikanisch&amp;quot;,&lt;br /&gt;
  &amp;quot;Partei&amp;quot;:&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;Name&amp;quot;: &amp;quot;Republican Party&amp;quot;,&lt;br /&gt;
    &amp;quot;Hauptsitz&amp;quot;: &amp;quot;Washington, D.C.&amp;quot;,&lt;br /&gt;
    &amp;quot;Gründungsdatum&amp;quot;: &amp;quot;1854-03-20&amp;quot;,&lt;br /&gt;
    &amp;quot;Gründungsort&amp;quot;: &amp;quot;Ripon&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;Amt&amp;quot;: &amp;quot;US-Präsident&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vergleich mit XML ==&lt;br /&gt;
Sowohl JSON als auch [[Extensible Markup Language|XML]] beschreiben die Struktur eines Datensatzes. Der Datensatz kann weitere Datensätze enthalten, dadurch sind beliebig tief verschachtelte Strukturen möglich.&lt;br /&gt;
&lt;br /&gt;
In XML sind die einzelnen Knoten der Datenstruktur benannt, während die Knoten in JSON unbenannt sind.&lt;br /&gt;
&lt;br /&gt;
In XML können einfache Zeichenketten sowohl als Attribut eines Elements als auch als eigenständiges Element beschrieben sein, in JSON gibt es diese Unterscheidung nicht. Diese in den meisten Fällen irrelevante Flexibilität führt dazu, dass sich die Struktur von XML-Dokumenten häufig unnötigerweise unterscheidet.&lt;br /&gt;
&lt;br /&gt;
Sowohl für JSON als auch für XML gibt es Beschreibungssprachen, um weiter einzugrenzen, wie „gültige“ Dokumente aussehen, im Gegensatz zu „wohlgeformten“ Dokumenten.&lt;br /&gt;
&lt;br /&gt;
Die Syntax von JSON ist sehr viel einfacher gestaltet und erscheint daher oft lesbarer und insbesondere leichter schreibbar. In der Regel produziert JSON auch geringeren [[Overhead (EDV)|Overhead]] im Vergleich zu XML.&lt;br /&gt;
&lt;br /&gt;
Sowohl JSON als auch XML&amp;lt;ref&amp;gt;{{Internetquelle |url=https://file-types.com/docs/json |titel=JSON Documentation |werk=file-types.com |datum=2020-01-18 |sprache=en |abruf=2021-10-10}}&amp;lt;/ref&amp;gt; müssen von einem speziellen Parser eingelesen werden. Traditionell ist jedes wohlgeformte JSON-Dokument ein gültiger JavaScript-Ausdruck, das sorglose Interpretieren von JSON-Dokumenten mit &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; stellt jedoch potentiell eine [[Sicherheitslücke]] dar und kann beispielsweise [[Cross-Site-Scripting]] (XSS) ermöglichen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Amakiri Welekwe |url=https://www.comparitech.com/net-admin/json-injection-guide/ |titel=What is a JSON Injection and How to Prevent it? |werk=comparitech.com |datum=2022-03-09 |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sowohl JSON als auch XML sind nicht gut zum Repräsentieren von [[Binärdatei|Binärdaten]] geeignet, da beide Datenformate als Grundelement zeichenbasiert sind und nicht bytebasiert.&lt;br /&gt;
&lt;br /&gt;
Zum Vergleich das oben genannte Beispiel in einer XML-Form:&lt;br /&gt;
&amp;lt;!-- Bei Änderungen des folgenden Beispiels bitte auch unten stehende Byte-Zahlen anpassen! --&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Kreditkarte Herausgeber=&amp;quot;Xema&amp;quot; Nummer=&amp;quot;1234-5678-9012-3456&amp;quot; Deckung=&amp;quot;2e+6&amp;quot; Waehrung=&amp;quot;EURO&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Inhaber Name=&amp;quot;Mustermann&amp;quot; Vorname=&amp;quot;Max&amp;quot; Teilnahme_am_Bonusprogramm=&amp;quot;true&amp;quot; Alter=&amp;quot;42&amp;quot; Partner=&amp;quot;null&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Hobbys&amp;gt;&lt;br /&gt;
      &amp;lt;Hobby&amp;gt;Reiten&amp;lt;/Hobby&amp;gt;&lt;br /&gt;
      &amp;lt;Hobby&amp;gt;Golfen&amp;lt;/Hobby&amp;gt;&lt;br /&gt;
      &amp;lt;Hobby&amp;gt;Lesen&amp;lt;/Hobby&amp;gt;&lt;br /&gt;
    &amp;lt;/Hobbys&amp;gt;&lt;br /&gt;
    &amp;lt;Kinder /&amp;gt;&lt;br /&gt;
  &amp;lt;/Inhaber&amp;gt;&lt;br /&gt;
&amp;lt;/Kreditkarte&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach Entfernung der optionalen Leerzeichen ist das JSON-Objekt 226&amp;lt;!-- Bei Änderungen am Beispiel anpassen! --&amp;gt; Byte, das XML-Objekt 279 Byte groß – ein Zuwachs um 23 %.&amp;lt;!-- Bei Änderungen am Beispiel anpassen! --&amp;gt;&amp;lt;br /&amp;gt;Oftmals können Attribute auch als Kindknoten formuliert werden, das Beispiel könnte dann wie folgt aussehen:&lt;br /&gt;
&amp;lt;!-- Bei Änderungen des folgenden Beispiels bitte auch unten stehende Byte-Zahl anpassen! --&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Kreditkarte&amp;gt;&lt;br /&gt;
  &amp;lt;Herausgeber&amp;gt;Xema&amp;lt;/Herausgeber&amp;gt;&lt;br /&gt;
  &amp;lt;Nummer&amp;gt;1234-5678-9012-3456&amp;lt;/Nummer&amp;gt;&lt;br /&gt;
  &amp;lt;Deckung&amp;gt;2e+6&amp;lt;/Deckung&amp;gt;&lt;br /&gt;
  &amp;lt;Waehrung&amp;gt;EURO&amp;lt;/Waehrung&amp;gt;&lt;br /&gt;
  &amp;lt;Inhaber&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;Mustermann&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Vorname&amp;gt;Max&amp;lt;/Vorname&amp;gt;&lt;br /&gt;
    &amp;lt;Teilnahme_am_Bonusprogramm&amp;gt;true&amp;lt;/Teilnahme_am_Bonusprogramm&amp;gt;&lt;br /&gt;
    &amp;lt;Hobbys&amp;gt;&lt;br /&gt;
      &amp;lt;Hobby&amp;gt;Reiten&amp;lt;/Hobby&amp;gt;&lt;br /&gt;
      &amp;lt;Hobby&amp;gt;Golfen&amp;lt;/Hobby&amp;gt;&lt;br /&gt;
      &amp;lt;Hobby&amp;gt;Lesen&amp;lt;/Hobby&amp;gt;&lt;br /&gt;
    &amp;lt;/Hobbys&amp;gt;&lt;br /&gt;
    &amp;lt;Alter&amp;gt;42&amp;lt;/Alter&amp;gt;&lt;br /&gt;
    &amp;lt;Kinder /&amp;gt;&lt;br /&gt;
    &amp;lt;Partner&amp;gt;null&amp;lt;/Partner&amp;gt;&lt;br /&gt;
  &amp;lt;/Inhaber&amp;gt;&lt;br /&gt;
&amp;lt;/Kreditkarte&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Dieses Objekt wäre mit Entfernung der Leerzeichen 361 Byte groß – ein Zuwachs um 60 % zum JSON-Objekt. &amp;lt;!-- Bei Änderungen am Beispiel anpassen! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== {{Anker|JSONP}} JSONP (JSON mit Padding) ==&lt;br /&gt;
Bei JSONP (JSON mit Padding) werden die JSON-Daten über ein &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt;-Element eingebunden und inklusive eines Funktionsaufrufs ausgegeben. Dies ermöglicht die [[Datenübertragung|Übertragung]] von JSON-Daten über [[Domain (Internet)|Domaingrenzen]], ist jedoch mit Sicherheitsrisiken behaftet.&lt;br /&gt;
&lt;br /&gt;
JSONP wurde 2005 von Bob Ippolito vorgestellt&amp;lt;ref&amp;gt;{{Internetquelle |url=https://bob.ippoli.to/javascript/mochikit/ajax/archives/2005/12/05/remote-json-jsonp |titel=Remote JSON – JSONP |werk=Bob.pythonmac.org |datum=2005-12-05 |sprache=en |abruf=2011-01-23 |kommentar=from __future__ import *}}&amp;lt;/ref&amp;gt; und wird jetzt von vielen Web-2.0-Anwendungen wie [[Dojo Toolkit]], [[jQuery]],&amp;lt;ref&amp;gt;{{Internetquelle |url=https://api.jquery.com/jQuery.getJSON/ |titel=jQuery API |werk=api.jquery.com |sprache=en |abruf=2011-01-23}}&amp;lt;/ref&amp;gt; [[Google Web Toolkit]] Applications&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.gwtapps.com/?p=42 |titel=GWT Tutorial: How to Read Web Services Client-Side with JSONP |werk=Google Web Toolkit Applications |datum=2008-02-06 |sprache=en |offline=1 |archiv-url=https://web.archive.org/web/20080213044253/http://www.gwtapps.com/?p=42 |archiv-datum=2008-02-13 |abruf=2011-01-23}}&amp;lt;/ref&amp;gt; und Web Services unterstützt. Für dieses Protokoll wurden Erweiterungen vorgeschlagen, die zusätzliche Eingabeparameter ermöglichen, wie z.&amp;amp;nbsp;B. JSONPP.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Jonas Almeida |url=https://sites.google.com/a/s3db.org/s3db/documentation/mis/json-jsonp-jsonpp |titel=JSON, JSONP, JSONPP? |hrsg=S3DB |datum=2008-06-11 |sprache=en |archiv-url=https://web.archive.org/web/20100524144722/https://sites.google.com/a/s3db.org/s3db/documentation/mis/json-jsonp-jsonpp |archiv-datum=2010-05-24 |abruf=2011-01-23}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Funktionsweise ===&lt;br /&gt;
&lt;br /&gt;
Üblicherweise erfolgen [[Ajax (Programmierung)|Ajax]]-Datenabfragen an [[Server]] über das [[XMLHttpRequest]]-Objekt eines [[Webbrowser]]s. Aufgrund der [[Same-Origin-Policy]] funktioniert das nicht, wenn die in einem Webbrowser angezeigte [[Webseite]] über dieses Objekt auf einen Server zuzugreifen versucht, der in einer anderen Domain als die angezeigte Webseite liegt. Das Problem kann durch JSONP umgangen werden. Im &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt;-Attribut eines [[HTML#HTML-Kopf|&amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt;-Elements]] ist es möglich, beliebige URLs anzugeben. Für dieses Attribut greift die Same-Origin-Policy nicht. Es ist also möglich, eine URL in einer anderen Domain anzugeben, die beispielsweise JSON-Daten zurückgibt. Dieses Script hätte aber keinen Effekt.&lt;br /&gt;
&lt;br /&gt;
Um die JSON-Daten auf dem [[Client]] verarbeiten zu können, verpackt der Server diese als Parameter in eine [[JavaScript#Funktionen|JavaScript-Funktion]], die im Webbrowser bereits definiert ist. Der Name dieser Funktion wird dem Server üblicherweise im [[Query-String]] der URL mitgeteilt, wobei das genaue Format oder der Name des Parameters nicht genormt ist.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
Im HTML-Code einer Webseite werden die JSONP-Daten wie folgt eingebunden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&lt;br /&gt;
        src=&amp;quot;https://example.com/getjson?jsonp=exampleCallback&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Server erzeugt daraufhin einen JavaScript-Codeschnipsel, in dem die eigentlichen Daten an die genannte Funktion übergeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  exampleCallback( {&amp;quot;name&amp;quot;:&amp;quot;Jane Doe&amp;quot;, &amp;quot;value&amp;quot;:4711} );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Browser führt diesen Funktionsaufruf daraufhin aus, als ob er direkt in der HTML-Seite niedergeschrieben worden wäre, und kann so die JSON-Daten aus dem Aufruf verarbeiten.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise ist für jeden JSONP-Aufruf ein eigenes [[HTML#HTML-Kopf|&amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt;-Element]] erforderlich.&lt;br /&gt;
&lt;br /&gt;
=== Sicherheitsrisiken ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt;-Elemente ermöglichen es einem Server, &amp;#039;&amp;#039;beliebige&amp;#039;&amp;#039; Inhalte (nicht nur JSON-Objekte) an den Webbrowser zu übermitteln. Dies kann dazu führen, dass ein bösartiger Web-Service über die zurückgesendeten Daten private Informationen im Webbrowser ausspäht oder in seinem Sinne verändert ([[Cross-Site-Scripting]]).&lt;br /&gt;
&lt;br /&gt;
Da das &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt;-Element die [[Same-Origin-Policy]] nicht beachtet, kann eine bösartige Webseite JSONP-Daten anfordern und auswerten, die nicht für sie bestimmt sind ([[Cross-Site-Request-Forgery]]).&amp;lt;ref&amp;gt;{{Internetquelle |autor=Jeremiah Grossman |url=https://blog.jeremiahgrossman.com/2006/01/advanced-web-attack-techniques-using.html |titel=Advanced Web Attack Techniques using GMail |werk=blog.jeremiahgrossman.com |datum=2006-01-27 |sprache=en |abruf=2011-01-23}}&amp;lt;/ref&amp;gt; Das Problem tritt dann auf, wenn sensible Daten vor Dritten geschützt werden sollen.&lt;br /&gt;
&lt;br /&gt;
=== Alternative ===&lt;br /&gt;
Mit [[Cross-Origin Resource Sharing]] (CORS) existiert ein vergleichbares Verfahren, das den Zugriff über Domaingrenzen hinweg ermöglicht, ohne jedoch der abgefragten Ressource die Möglichkeit einzuräumen, beliebigen JavaScript-Code auszuführen. Beide Verfahren erfordern die Unterstützung durch die entsprechende Ressource, wobei CORS einfacher zu implementieren ist. Gleichzeitig erlaubt CORS eine einfache Einschränkung seitens der Ressource, von welchen Datenquellen (englisch „origins“, das sind URLs, Domänen o.&amp;amp;nbsp;ä.) sie genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
CORS ist gegenüber JSONP meist zu bevorzugen, da CORS insgesamt einfacher und sicherer ist.&lt;br /&gt;
&lt;br /&gt;
== Verwandte Techniken ==&lt;br /&gt;
&lt;br /&gt;
=== JSON-basierte Formate ===&lt;br /&gt;
&lt;br /&gt;
* [[GeoJSON]] dient zur Annotation von [[Geodaten]].&lt;br /&gt;
* [[JSON-LD]] dient zur Einbettung von [[Resource Description Framework|RDF]]-Daten.&lt;br /&gt;
* [[JSON-RPC]] dient zum Aufruf von Methoden in entfernten Computersystemen.&lt;br /&gt;
* [[JSON Feed]] dient zur Beschreibung von Web-Feeds.&lt;br /&gt;
* Die [[Hypertext Application Language]]&amp;lt;ref&amp;gt;{{Internetquelle |autor=Mike Kelly |url=https://tools.ietf.org/html/draft-kelly-json-hal-08 |titel=JSON Hypertext Application Language |hrsg=[[Internet Engineering Task Force|IETF]] Network Working Group |datum=2016-10-12 |sprache=en |abruf=2016-12-07}}&amp;lt;/ref&amp;gt; (HAL) dient zur Implementierung von [[HATEOAS]] in auf JSON basierten [[Representational State Transfer|REST-Schnittstellen]].&lt;br /&gt;
* JSON Hyper-Schema&amp;lt;ref&amp;gt;{{Internetquelle |autor=Austin Wright, Geraint Luff |url=https://json-schema.org/latest/json-schema-hypermedia.html |titel=JSON Hyper-Schema: A Vocabulary for Hypermedia Annotation of JSON |hrsg=[[Internet Engineering Task Force|IETF]] |datum=2016-08-13 |sprache=en |abruf=2016-12-07 |archiv-datum=2016-12-07 |archiv-url=https://web.archive.org/web/20161207131655/http://json-schema.org/latest/json-schema-hypermedia.html |offline=ja |archiv-bot=2025-03-21 02:24:51 InternetArchiveBot }}&amp;lt;/ref&amp;gt; dient zur Annotation von Datentypen in JSON.&lt;br /&gt;
* GBSON&amp;lt;ref&amp;gt;{{Internetquelle |url=https://chlorobox.mpimp-golm.mpg.de/GBSON-Documentation.html |titel=GBSON |titelerg=A new annotation file format based on JSON |sprache=en |abruf=2021-11-12}}&amp;lt;/ref&amp;gt; dient zur Annotation von Nucleinsäuresequenzen ([[Desoxyribonukleinsäure|DNA]] und [[Ribonukleinsäure|RNA]]).&lt;br /&gt;
&lt;br /&gt;
=== Alternative Formate ===&lt;br /&gt;
&lt;br /&gt;
* [[YAML]], [[CSON]]&amp;lt;ref&amp;gt;{{Internetquelle |url=https://github.com/bevry/cson/blob/master/README.md |titel=CSON |werk=github.com |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; (&amp;#039;&amp;#039;CoffeeScript-Object-Notation&amp;#039;&amp;#039;), [[HOCON]]&amp;lt;ref&amp;gt;{{Internetquelle |url=https://github.com/lightbend/config/blob/main/HOCON.md |titel=HOCON |werk=github.com |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; (&amp;#039;&amp;#039;Human-Optimized Config Object Notation&amp;#039;&amp;#039;), [[JSON5]]&amp;lt;ref&amp;gt;{{Internetquelle |url=https://json5.org/ |titel=JSON5 – JSON for Humans |werk=json5.org |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; und [[Hjson]]&amp;lt;ref&amp;gt;{{Internetquelle |url=https://hjson.github.io/ |titel=Hjson, a user interface for JSON |werk=hjson.github.io |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; sind Datenserialisierungsformate, deren Syntax eine Obermenge von JSON ist. Sie erweitern JSON u.&amp;amp;nbsp;a. um Kommentare und erlauben eine für Menschen einfacher lesbare Syntax. Beispielsweise sind Anführungszeichen für Schlüssel und Zeichenketten, Kommas am Zeilenende und geschweifte Klammern teilweise optional.&lt;br /&gt;
* [[Jsonnet]],&amp;lt;ref&amp;gt;{{Internetquelle |url=https://jsonnet.org/ |titel=Jsonnet |werk=jsonnet.org |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; [[Dhall]]&amp;lt;ref&amp;gt;{{Internetquelle |url=https://dhall-lang.org/ |titel=The Dhall configuration language |werk=dhall-lang.org |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; und CUE&amp;lt;ref&amp;gt;{{Internetquelle |url=https://cuelang.org/ |titel=CUE: Configure Unify Execute |werk=cuelang.org |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; sind ebenfalls Obermengen von JSON und bieten Funktionen wie z.&amp;amp;nbsp;B. Validierung.&lt;br /&gt;
* [[JSON streaming]] mit den drei Varianten &amp;#039;&amp;#039;Line-delimited JSON&amp;#039;&amp;#039; (LDJSON), &amp;#039;&amp;#039;Newline-delimited JSON&amp;#039;&amp;#039; (NDJSON) und &amp;#039;&amp;#039;JSON lines&amp;#039;&amp;#039; (JSONL).&lt;br /&gt;
* [[Initialisierungsdatei|INI]], [[YAML]] und [[TOML]] sind Formate, die speziell für [[Konfigurationsdatei]]en entworfen wurden.&lt;br /&gt;
&lt;br /&gt;
=== Binäre Formate ===&lt;br /&gt;
&lt;br /&gt;
Binäre JSON-Varianten gibt es mit BSON (Binary JSON),&amp;lt;ref&amp;gt;{{Internetquelle |url=https://bsonspec.org/ |titel=BSON (Binary JSON) Serialization |werk=bsonspec.org |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; verwendet u.&amp;amp;nbsp;a. von [[MongoDB]], und mit JSONB, verwendet von [[PostgreSQL]].&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.postgresql.org/docs/12/datatype-json.html |titel=PostgreSQL 12 Documentation, 8.14. JSON Types |werk=postgresql.org |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; Einen ähnlichen Ansatz verfolgen Googles [[Protocol Buffers]] (protobuf), denen im Unterschied zu JSON bzw. BSON ein Schema zugrunde liegt.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://protobuf.dev/ |titel=Protocol Buffers |werk=protobuf.dev |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://github.com/protocolbuffers/protobuf/blob/main/README.md |titel=Protocol Buffers – Google’s data interchange format |werk=github.com |sprache=en |abruf=2023-12-16}}&amp;lt;/ref&amp;gt; Ebenfalls an JSON orientiert ist das schemalose und auf platzsparende Serialisierung und Prozessierungsgeschwindigkeit hin optimierte [[Concise Binary Object Representation|CBOR]].&amp;lt;ref&amp;gt;{{Internetquelle |url=https://cbor.io/ |titel=CBOR – Concise Binary Object Representation {{!}} Overview |werk=cbor.io |sprache=en |abruf=2019-02-16}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vorgänger-Formate ===&lt;br /&gt;
&lt;br /&gt;
Vor der Verbreitung von JSON war [[Extensible Markup Language|XML]] das bekannteste Datenserialisierungsformat.&lt;br /&gt;
&lt;br /&gt;
[[NeXTstep]] verwendete bereits einige Jahre früher, spätestens seit 1994, eine ähnliche Technik, um einfache Objektbäume zu laden oder zu speichern. Sie heißen dort [[Property List]]s und sind bis heute in [[macOS]] in Verwendung. Diese erlauben ebenfalls die Speicherung von Werten der Typen &amp;#039;&amp;#039;Array&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Dictionary&amp;#039;&amp;#039;, boolescher Wert, Binärdaten, Datum, Zahl und Zeichenketten.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/PropertyLists/Introduction/Introduction.html |titel=Introduction to Property Lists |werk=developer.apple.com |sprache=en |abruf=2011-11-06}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.nextcomputers.org/NeXTfiles/Docs/NeXTStep/3.3/nd/Foundation/Classes/NSStringClassCluster.htmld/index.html |titel=NSString Class Cluster – propertyList Methode |werk=NeXTStep 3.3 Developer Documentation Manuals |hrsg=nextcomputers.org |datum=2000-06-30 |sprache=en |abruf=2022-07-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die [[Tcl|Tool Command Language]] kennt &amp;#039;&amp;#039;Dictionaries&amp;#039;&amp;#039; (dict), die ebenfalls beliebig geschachtelte, benannte Strukturen enthalten können. Diese sind gleichfalls strukturierte Zeichenketten. Der Zusatzaufwand (englisch „overhead“) ist gegenüber JSON deutlich vermindert, weil keine Doppelpunkte oder Anführungsstriche benötigt werden. Eine klare Trennung zwischen Objektstrukturen (Eigenschaft/Wert) und Tabellen („arrays“, hier als Listen bezeichnet) gibt es allerdings nicht. Daher ist eine Überführung von JSON-Daten in ein &amp;#039;&amp;#039;dict&amp;#039;&amp;#039; immer eindeutig und leicht möglich, umgekehrt jedoch nicht.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Commonscat|JavaScript Object Notation|audio=1|video=1}}&lt;br /&gt;
* [https://json.org/json-de.html json.org/json-de.html] – deutsche Einführung auf der offiziellen JSON-Seite (weitere Sprachen verfügbar)&lt;br /&gt;
* [https://www.developer.com/lang/jscript/article.php/3596836 Speeding Up AJAX with JSON] Einführung in JSON, bei der die Unterschiede zu XML herausgearbeitet werden (englisch)&lt;br /&gt;
* [https://seriot.ch/parsing_json.php Parsing JSON is a Minefield] – Übersicht der verschiedenen Standards und Implementierungen (englisch)&lt;br /&gt;
* [https://codifyformatter.org/jsonviewer Online JSON Viewer] for Formatting, Validating, and Sharing JSON Data&lt;br /&gt;
* [https://codebeautify.org/jsonviewer JSON Viewer] Online-Plattform zum Formatieren, Validieren und Austausch von JSON-Daten (englisch)&lt;br /&gt;
* [http://jsonp.eu/ jsonp.eu] – Erklärungen und Programmierbeispiele zu &amp;#039;&amp;#039;JSON with Padding&amp;#039;&amp;#039; (JSONP)&lt;br /&gt;
* [https://jsonparser.ai/json-fixer JSON-zu-Fixierungstool] Erkennt automatisch die Probleme im JSON-Code und behebt sie.&lt;br /&gt;
* [https://onlinejsonformatter.com/json-viewer JSON Viewer Online] Plattformen sind für das Debuggen und Optimieren von JSON-Code in Echtzeitprojekten unerlässlich.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references responsive&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RFC7159&amp;quot;&amp;gt;&lt;br /&gt;
{{RFC-Internet |Autor=Tim Bray |RFC=7159 |Titel=The JavaScript Object Notation (JSON) Data Interchange Format |Datum=2014-03}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RFC8259&amp;quot;&amp;gt;&lt;br /&gt;
{{RFC-Internet |RFC=8259 |Titel=The JavaScript Object Notation (JSON) Data Interchange Format |Datum=2017 |Autor=Douglas Crockford}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;ECMA-404&amp;quot;&amp;gt;&lt;br /&gt;
[https://www.ecma-international.org/publications-and-standards/standards/ecma-404 ECMA-404]&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=1105592812|LCCN=sh2014000515}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Web-Entwicklung|JSON]]&lt;br /&gt;
[[Kategorie:Datenserialisierungformat|JSON]]&lt;br /&gt;
[[Kategorie:Beschreibungssprache|JSON]]&lt;br /&gt;
[[Kategorie:JSON| ]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Faisalhussain2008</name></author>
	</entry>
</feed>