Was ist der Unterschied zwischen JSON und XML?

JSON und XML sind Datenrepräsentationen, die beim Datenaustausch zwischen Anwendungen verwendet werden. JSON ist ein offenes Datenaustauschformat, das sowohl für Menschen als auch für Maschinen lesbar ist. JSON ist unabhängig von jeder Programmiersprache und ist eine gängige API-Ausgabe in einer Vielzahl von Anwendungen. XML ist eine Markup-Sprache, die Regeln zur Definition beliebiger Daten bereitstellt. Es verwendet Tags, um zwischen Datenattributen und den tatsächlichen Daten zu unterscheiden. Während beide Formate für den Datenaustausch verwendet werden, ist JSON die neuere, flexiblere und beliebteste Option.

Mehr über JSON erfahren »

Lesen Sie über XML »

Was sind die Ähnlichkeiten zwischen JSON und XML?

JSON und XML sind beide Datenserialisierungsformate. Sie ermöglichen den standardisierten Datenaustausch zwischen verschiedenen Anwendungen, Plattformen oder Systemen.

Verschiedene Programmiersprachen und Plattformen stellen dieselben Daten unterschiedlich dar. Beispielsweise verwendet eine Java-Anwendung ein Datenobjekt, während eine Python-Anwendung ein Wörterbuch verwendet, um Informationen über dieselbe reale Entität zu speichern. Um Daten zwischen ihnen auszutauschen, können Sie die folgenden Schritte ausführen:

  1. Konvertieren Sie das Java-Objekt in XML oder JSON
  2. Übertragen Sie die XML- oder JSON-Datei über ein Netzwerk
  3. Konvertieren Sie das XML oder JSON erneut in das Python-Wörterbuch

 

Konvertierungen sind in Sprachbibliotheken integriert, sodass Programmierer Anwendungen schreiben können, die mithilfe von APIs miteinander kommunizieren. Darüber hinaus beschreiben sich beide Formate von selbst, sodass Sie JSON- und XML-Dateien in jedem Texteditor lesen und bearbeiten können.

Obwohl XML eine ältere Technologie ist, werden sowohl JSON als auch XML immer noch häufig verwendet.

Datendarstellung: JSON vs. XML

XML stellt Daten in einem Baummuster dar, während JSON Schlüssel-Wert-Paare verwendet. In den folgenden Beispielen werden dieselben Informationen in beiden Datendarstellungen angezeigt. 

Beispiel: JSON-Dokument

Im folgenden Beispiel werden die Namen von drei Gästen in JSON angezeigt.

{"guests":[

  { "firstName":"John", "lastName":"Doe" },

  { "firstName":"María", "lastName":"García" },

  { "firstName":"Nikki", "lastName":"Wolf" }

]}

Beispiel: XML-Dokument

Im folgenden Beispiel werden die Namen von drei Gästen in XML angezeigt.

<guests>

  <guest>

    <firstName>John</firstName> <lastName>Doe</lastName>

  </guest>

  <guest>

    <firstName>María</firstName> <lastName>García</lastName>

  </guest>

  <guest>

    <firstName>Nikki</firstName> <lastName>Wolf</lastName>

  </guest>

</guests>

Hauptunterschiede: JSON vs. XML

Obwohl JSON und XML ähnlichen Zwecken dienen, unterscheiden sie sich durch einige grundlegende Unterschiede. Wenn Sie diese Unterschiede verstehen, können Sie entscheiden, welche Option für Ihren Anwendungsfall hilfreicher ist.

Geschichte

Die XML Working Group konzipierte XML 1996 und veröffentlichte 1998 die erste Version. Sie leiteten XML von der Standard Generalized Markup Language (SGML) ab. Nach der Einführung von HTML im Jahr 1998 entwickelten sie XML als Tool zur Datenserialisierung.

Douglas Crockford und Chip Morningstar veröffentlichten JSON im Jahr 2001. Sie haben JSON von JavaScript abgeleitet.

Format

JSON verwendet Schlüssel-Wert-Paare, um eine kartenähnliche Struktur zu erstellen. Der Schlüssel ist eine Zeichenfolge, die das Paar identifiziert. Der Wert ist die Information, die Sie diesem Schlüssel geben. Ein Beispiel wäre „NumberProperty“: 10. In diesem Fall ist „NumberProperty“ der Schlüssel und 10 ist der Wert.

Im Gegensatz dazu ist XML eine Markup-Sprache — eine Untergruppe von SGML mit einer HTML-ähnlichen Struktur. Sie speichert Daten in einer Baumstruktur, die Informationsebenen enthält, die Sie verfolgen und lesen können. Der Baum beginnt mit einem Stammelement (übergeordnetes Element), bevor er Informationen über untergeordnete Elemente enthält. Diese umfangreiche Struktur ist hilfreich beim Laden vieler Variablen und dynamischer Konfigurationen. 

Syntax

Die in JSON verwendete Syntax ist kompakter und einfacher zu schreiben und zu lesen. Es ermöglicht Ihnen, Objekte einfach zu definieren.

XML ist ausführlicher und ersetzt bestimmte Zeichen durch Entitätsverweise. Beispielsweise verwendet XML anstelle des Zeichens < die Entitätsreferenz &it;. XML verwendet auch End-Tags, wodurch es länger ist als JSON.

Parsing

Sie müssen XML mit einem XML-Parser parsen, was den Prozess oft verlangsamt und verkompliziert.

Sie können JSON mit einer standardmäßigen JavaScript-Funktion analysieren, die leichter zugänglich ist. Aufgrund ihrer Syntax und Dateigrößenunterschiede können Sie JSON auch schneller analysieren als XML.

Schema-Dokumentation

Die Schemadokumentation beschreibt den Zweck einer Datei und zeigt, wofür Sie sie verwenden sollten.

XML-Dokumente haben in der Kopfzeile einen Link zu ihrem Schema. Das Schema liegt auch im XML-Format vor, sodass Sie lesen können, was Sie in der Datei erwarten sollten. Anschließend können Sie das Dokument anhand des Schemas validieren und überprüfen, ob alles korrekt und fehlerfrei geladen wurde.

JSON ermöglicht es Ihnen auch, Schemas zu verwenden. Sie sind jedoch einfacher und ermöglichen eine größere Flexibilität.

Unterstützung von Datentypen

JSON unterstützt nur einen begrenzten Bereich von Datentypen wie Zeichenketten, Zahlen und Objekten. JSON kann auch boolesche Arrays unterstützen, was XML ohne das Hinzufügen zusätzlicher Zeichenfolgen nicht kann.

XML ist flexibler und unterstützt komplexe Datentypen wie Binärdaten und Zeitstempel. 

Einfache Nutzung

Als Markup-Sprache ist XML komplexer und erfordert eine Zeichenfolge-Struktur.

Im Gegensatz dazu ist JSON ein Datenformat, das von JavaScript ausgeht. Es verwendet keine Zeichenfolgen, was es kompakter und für Menschen leichter lesbar macht. JSON kann dieselben Daten in einer kleineren Dateigröße darstellen, um die Datenübertragung zu beschleunigen.

Sicherheit

JSON-Parsing ist sicherer als XML.

Die Struktur von XML ist anfällig für unbefugte Änderungen, was ein Sicherheitsrisiko darstellt, das als XML External Entity Injection (XXE) bezeichnet wird. Sie ist auch anfällig für unstrukturierte externe Dokumenttypdeklarationen (DTD). Sie können diese beiden Probleme verhindern, indem Sie die DTD-Funktion bei der Übertragung deaktivieren. 

Wann sollte man es verwenden: JSON vs. XML

Wenn Sie mehrere verschiedene Datentypen mit vielen Variablen speichern möchten, ist XML die bessere Wahl. XML überprüft komplexe Daten effizienter als JSON auf Fehler, da XML sich darauf konzentriert, Daten auf maschinenlesbare Weise zu speichern. Es verfügt auch über ausgereiftere Tools und Bibliotheken und funktioniert möglicherweise besser mit älteren Systemen.

 

Andererseits wurde JSON für den Datenaustausch entwickelt und bietet ein einfacheres und übersichtlicheres Format. Es verbessert auch die Leistung und die Kommunikationsgeschwindigkeit.

JSON ist im Allgemeinen die bessere Wahl für APIs, mobile Apps und Datenspeicher, während XML besser für komplexe Dokumentenstrukturen geeignet ist, die einen Datenaustausch erfordern.

Zusammenfassung der Unterschiede: JSON im Vergleich zu XML

 

JSON

XML

Steht für

JSON steht für JavaScript Object Notation.

XML steht für Extensible Markup Language. 

Geschichte

Douglas Crockford und Chip Morningstar veröffentlichten JSON im Jahr 2001.

Die XML Working Group veröffentlichte XML 1998.

Format

JSON verwendet eine kartenähnliche Struktur mit Schlüssel-Wert-Paaren.

XML speichert Daten in einer Baumstruktur mit Namespaces für verschiedene Datenkategorien.

Syntax

Die Syntax von JSON ist kompakter und einfacher zu lesen und zu schreiben.

Die Syntax von XML ersetzt Entitätsverweise durch einige Zeichen, wodurch es ausführlicher wird.

Parsing

Sie können JSON mit einer Standard-JavaScript-Funktion analysieren.

Sie müssen XML mit einem XML-Parser parsen.

Schema-Dokumentation

JSON ist einfach und flexibler.

XML ist komplex und weniger flexibel.

Datentypen

JSON unterstützt Zahlen, Objekte, Zeichenfolgen und boolesche Arrays.

XML unterstützt alle JSON-Datentypen und zusätzliche Typen wie Boolean, Daten, Bilder und Namespaces.

Einfache Nutzung

JSON hat kleinere Dateigrößen und eine schnellere Datenübertragung.

Die XML-Tag-Struktur ist komplexer zu schreiben und zu lesen und führt zu sperrigen Dateien.

Sicherheit

JSON ist sicherer als XML.

Sie sollten DTD deaktivieren, wenn Sie mit XML arbeiten, um potenzielle Sicherheitsrisiken zu minimieren.

Wie kann AWS Ihre JSON- und XML-Anforderungen unterstützen?

Alle AWS-Datenintegrationsdienste (Amazon Web Services) können JSON- und XML-Dateien verarbeiten. Hier sind drei relevante AWS-Services:

  • AWS Glue ist ein Serverless-Datenintegrations-Service, den Sie verwenden können, um Daten für Analytik, Machine Learning und die Anwendungsentwicklung zu finden, aufzubereiten und zu kombinieren.
  • Amazon Simple Queue Service (SQS) ist ein vollständig verwalteter Message Queuing Service, mit dem Sie Nachrichten zwischen Softwarekomponenten auf jedem beliebigen Volume senden, speichern und empfangen können. Amazon SQS-Nachrichten können bis zu 256 KB an Textdaten, darunter XML, JSON und unformatierten Text, enthalten.
  • Amazon Kinesis erleichtert das Sammeln, Verarbeiten und Analysieren von Streaming-Daten in Echtzeit. Sie können zeitnahe Einblicke erhalten und schnell auf neue Informationen reagieren. Mit Kinesis können Sie XML-Daten in Echtzeit streamen, transformieren und analysieren.

Darüber hinaus ist Amazon DocumentDB (mit MongoDB-Kompatibilität) eine vollständig verwaltete native JSON-Dokumentdatenbank. Amazon DocumentDB macht es einfach und kostengünstig, kritische Dokumenten-Workloads in praktisch jeder Größenordnung zu betreiben, ohne die Infrastruktur verwalten zu müssen.

Beginnen Sie mit JSON und XML auf AWS, indem Sie noch heute ein kostenloses Konto erstellen.