Definition: das Datenaustauschformat JavaScript Object Notation

Was ist JSON?

| Autor / Redakteur: Stefan Luber / Florian Karlstetter

JSON (JavaScript Object Notation) - für den Austausch strukturierter Daten.
JSON (JavaScript Object Notation) - für den Austausch strukturierter Daten. (Bild: gemeinfrei (geralt / pixabay) / CC0)

Bei JSON (JavaScript Object Notation) handelt es sich um ein Textformat zum Austausch von Daten. Es ist einfach zu erlernen und zu lesen. JSON basiert auf der JavaScript-Sprache. Das Format konkurriert beim Austausch strukturierter Daten mit XML, besitzt aber wesentlich weniger Möglichkeiten.

Die Abkürzung JSON steht für JavaScript Object Notation und bezeichnet ein normiertes Textformat, mit dem sich strukturierte Daten austauschen lassen. Aufgrund seiner Einfachheit und Schlankheit ist es leicht zu erlernen und gut zu lesen. JSON basiert zwar auf JavaScript, ist aber unabhängig von der Programmiersprache einsetzbar.

Geeignete Parser existieren für fast alle gängigen Programmiersprachen wie C++, Java, Python oder Lisp. Ursprünglich spezifizierte Douglas Crockford JavaScript Object Notation. Aktuell existieren mit RFC 8259 und ECMA-404 zwei verschiedene Standards. Im Internet ist JSON weit verbreitet und kommt als Alternative zu XML (Extensible Markup Language) zum Einsatz. Im Gegensatz zu XML handelt es sich bei JSON nicht um eine vollständige Auszeichnungssprache. JavaScript Object Notation ist ein gegenüber XML vereinfachtes Datenaustauschformtat.

Verwendung von JSON

Grundsätzlich ist JSON überall dort nutzbar, wo Daten übertragen oder ausgetauscht werden müssen. JSON lässt sich in dieser Hinsicht mit XML vergleichen, ist aber wesentlich schlanker und einfacher. Aufgrund der ressourcenschonenden Verarbeitung der JSON-Daten sind besonders Desktop- und Web-Anwendungen sowie mobile Apps für das JSON-Format geeignet. Beim Austausch der Daten zwischen Client und Server sind oft Ajax, WebSockets oder JavaScript parallel im Einsatz.

Für die Verarbeitung von JSON wird eine geeigneter Parser benötigt. Da für die Darstellung von Webserver-Daten in einem Browser häufig JavaScript verwendet wird, ist die Nutzung des JSON-Datenformats aufgrund sich sehr ähnelnder Sprachelemente sehr beliebt. Denn für die Programmierer ergibt sich bei der Verwendung von JSON der Vorteil, dass bis auf wenige Ausnahmen die JSON-Objekte mit dem JavaScript-Code fast identisch sind. Es muss daher keine komplizierte neue Syntax gelernt werden.

Die verschiedenen Elemente von JavaScript Object Notation und ihre Syntax

JavaScript Object Notation unterscheidet verschiedene Elemente. Diese sind Objekte, Arrays, Zahlen, Boolesche Werte oder Strings. Zentrale Bestandteile sind die sogenannten "Schlüssel : Wert"-Paare und Satzzeichen wie runde und geschweifte Klammern, Doppelpunkte und Semikolon. Jedes Objekt hat eine definierte Eigenschaft und bekommt einen Wert zugeordnet. Mathematische Notationen, Algorithmen oder andere Elemente typischer Programmiersprachen besitzt JSON nicht. Die Verschachtelung von JSON-Objekten lässt sich beliebig tief gestalten. Für eine einfache Lesbarkeit des Datenformats ist jedoch auf eine flache Hierarchie der JSON-Objekte zu achten. Die Zeichenkodierung von JSON ist UTF-8 oder alternativ UTF-16 beziehungsweise UTF-32.

Die Datentypen im Detail sind:

  • der Nullwert mit Schlüsselwort null
  • der Boolesche Wert mit true oder false
  • die Zahl als Folge von Ziffern
  • Zeichenketten gekennzeichnet durch Anführungszeichen

Weitere Elemente sind:

  • Arrays beginnend und endend mit eckigen Klammern
  • Objekte beginnend und endend mit geschweiften Klammern
  • "Schlüssel : Wert"-Paare jeweils getrennt durch den Doppelpunkt. Die Schlüssel sollten innerhalb des Dokuments jeweils eindeutig sein. Beim Schlüssel handelt es sich um eine Zeichenkette und beim Wert um einen Datentyp

Gegenüberstellung von JavaScript Object Notation und XML

Obwohl JSON und XML im Bereich der Datenübertragung miteinander konkurrieren, existieren gravierende Unterschiede der beiden Formate. Je nach Anwendungsbereich eignen sich XML und JSON unterschiedlich gut und besitzen spezifische Vor- und Nachteile. XML ist eine vollständige Auszeichnungssprache, JSON hingegen lediglich eine Syntax für die Darstellung bereits deklarierter Objekte. Sollen Daten in fest definierten Strukturen übertragen werden, ist JavaScript Object Notation eine gute Wahl, da nur wenig Overhead erzeugt wird.

XML ist wesentlich flexibler einsetzbar und erlaubt komplexere Objekte und sich unterscheidende Strukturen. Die Syntax von JSON ist einfacher gestaltet und besser les- und erlernbar. Eine Stärke von JSON ist, dass bis auf wenige Ausnahmen die Syntax aus validem JavaScript-Code besteht. Innerhalb von JavaScript kann JSON mit der eval()-Funktion in JavaScript-Objekte umgewandelt werden. Dadurch entsteht ein potentielles Risiko für die Ausführung von ungewolltem Code, das sich durch den Einsatz eines Parsers minimieren lässt.

Für den Austausch von Daten im Internet ist XML weiter verbreiten. In Bereichen, in denen keine komplexen Auszeichnungen benötigt werden, ist JSON eine beliebte und häufig genutzte Alternative. Da sowohl JSON als auch XML keine Binärdatentypen unterstützen und zeichenweise zu interpretieren sind, sind sie beide weniger gut für die Repräsentation von Binärdatenmengen geeignet.

JSON und Aspekte der Sicherheit

Wie bereits im vorherigen Kapitel kurz beschrieben, können JSON-Dateiformate von JavaScript ausgeführt werden. Mit Hilfe von Methoden wie Cross-Site-Scripting oder Command-Injection können Angreifer JavaScript-Attacken auf einem Webclient ausführen. Hierfür müssen Hacker den Java-Script-Code in die JSON-Zeichenfolge einfügen. Webserver können beliebige Inhalte mit den manipulierten JSON-Objekten an den Webbrowser übermitteln, die dieser ausführt. Durch geeignete Schutzmaßnahme lässt sich der Missbrauch von JSON verhindern.

Die Vorteile von JavaScript Object Notation

Für fast jede gängige Programmiersprache existieren geeignete Parser, mit denen sich JSON-Objekte verstehen und verarbeiten lassen. Dadurch ist JSON sehr flexibel einsetzbar und weit verbreitet. Die in JavaScript Object Notation standardisierte Struktur sorgt dafür, dass genau festgelegt ist, wie die Daten repräsentiert werden. Für die Entwickler ist es dadurch einfacher JSON-Datenobjekte zu erstellen und auszuwerten.

Auch die Interoperabilität mit den unterschiedlichen Anwendungsbereichen und Programmiertechnologien steigt. Dank der einfachen Syntax sind JSON-Daten für Menschen einfach zu lesen und zu verstehen. Bei der Verarbeitung durch Rechner werden nur wenig Ressourcen benötigt. Da die JSON-Objekte ohne umfangreiche Deklarationen oder Beschreibungen auskommen und immer gleiche Grundstruktur besitzen, minimiert sich der Overhead für den Austausch von Daten.

JSON und YAML

YAML (Yet Another Markup Language) ist wie JSON eine vereinfachte Auszeichnungssprache für die Übertragung von Datenobjekten und ist noch stärker auf die leichte Lesbarkeit für den Menschen fokussiert. JSON ist eine Untermenge von YAML und jedes JSON-Dokument ist in der YAML-Version 1.2 gleichzeitig ein gültiges YAML-Dokument. Beide Formate bieten sehr ähnliche Funktionalitäten. Während YAML bevorzugt mit Einrückungen für die hierarchische Struktur der Dokumente arbeitet, verwendet JSON Klammern für die Strukturierung. Die Klammern werden optional auch von YAML verstanden.

Was ist eine REST API?

Definition: Representational State Transfer (REST) Application Programming Interface (API)

Was ist eine REST API?

09.06.17 - REST steht für REpresentational State Transfer, API für Application Programming Interface. Gemeint ist damit ein Programmierschnittstelle, die sich an den Paradigmen und Verhalten des World Wide Web (WWW) orientiert und einen Ansatz für die Kommunikation zwischen Client und Server in Netzwerken beschreibt. lesen

Cloud native, REST API, Serverless & Co.: Definitionen rund um Cloud Computing

Definitionen rund um Cloud ComputingVon AWS bis XaaS: Alle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie auch gut erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier leicht verständliche Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in allen unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Begriffe direkt dort nachschlagen, wo sie im Text auftauchen.  

Zum Special: Definitionen rund um Cloud Computing

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Erste Schritte mit dem AWS Security Hub

Compliance-Checks automatisiert durchführen

Erste Schritte mit dem AWS Security Hub

In Entwicklungsumgebungen, in denen schnelle und häufige Deployments die Regel sind, schleichen sich leicht unbemerkt Fehler in den Code. Der AWS Security Hub ermöglicht automatisierte Compliance-Checks und liefert aggregierte Informationen zu einer Reihe von Cloud-Services. lesen

Java-Update für AWS SDK empfohlen

Support für Java 6 endet im November

Java-Update für AWS SDK empfohlen

Das AWS SDK for Java 1.11.x wird ab Mitte November ohne Java-6-Support veröffentlicht. Sollten AWS-Kunden nach dem Stichdatum ihre Version des Software Development Kit aktualisieren, erhalten sie zur Laufzeit einen „Java version mismatch“-Fehler. lesen

Data Governance – Das A und O für sauberes Datenmanagement

Data Intelligence

Data Governance – Das A und O für sauberes Datenmanagement

Die Digitalisierung birgt für Unternehmen Möglichkeiten, aber auch damit verbundene Herausforderungen. Enorme Datenmengen in vielfältigen Formaten bestimmen maßgeblich unternehmerische Entscheidungen und Prozesse. Das daraus resultierende Mehr an Daten muss jedoch verwaltet werden. Informationen müssen validiert, aufbereitet und Compliance-konform im Unternehmen bereitgestellt werden. lesen

Was ist AWS CloudFormation?

Definition: Infrastructure as Code (IaC) auf Basis von AWS

Was ist AWS CloudFormation?

Mit AWS CloudFormation ist es möglich, Infrastrukturressourcen der Amazon Web Services mit einfachem Textcode zu konfigurieren und bereitzustellen. Es werden zahlreiche Ressourcen der Amazon Web Services unterstützt. Modellierung und Bereitstellung der Services erfolgen über Templates und Stacks. lesen

Couchbase gibt Tipps zur Datenbankmigration

Legacy-Systeme aufwerten

Couchbase gibt Tipps zur Datenbankmigration

Für den Umstieg von relationalen auf NoSQL-Datenbanken gibt es viele Gründe. Allerdings ist nicht immer eine sofortige Migration die beste Wahl. Der Datenbankspezialist Couchbase gibt fünf Tipps, wie Unternehmen zunächst in kleinen Schritten vorgehen können. lesen

5 Tipps zum Abbau von Datensilos

Daten besser nutzen

5 Tipps zum Abbau von Datensilos

Isolierte Storage-Lösungen einzelner Unternehmensabteilungen führen zu Silos, deren Daten ihr Potenzial nicht sinnvoll entwickeln können. Xavier Guérin von Datastax gibt fünf wertvolle Tipps, wie diese Speicherinseln aufgebrochen werden können. lesen

API-Management im Unternehmen einführen

Strategien zur Schnittstellen-Implementierung

API-Management im Unternehmen einführen

APIs sind eine Schlüsseltechnologie in der heutigen digitalen Welt. Dieser Artikel beschreibt Strategien, um API-Management in Unternehmen einzuführen und die Schritte, wie Organisationen ihre IT mit Hilfe eines API-basierten Ansatzes transformieren können. lesen

Altanwendungen durch API Management für die Hybrid Cloud nutzen

Cloud-Integration mit Dell Boomi, Talend & Salesforce Mulesoft

Altanwendungen durch API Management für die Hybrid Cloud nutzen

Um unterschiedliche Cloud- sowie alte On-premises-Anwendungen in hybriden Architekturen miteinander zu integrieren, bieten sich Integration Platform as a Service (iPaaS) an. Sie sollen insbesondere das Erstellen und Verwalten von APIs erleichtern. Ein Vergleich von drei Anbietern zeigt Gemeinsamkeiten, Unterschiede und Trends auf. lesen

Software AG präsentiert webMethods.io

iPaaS liefert Citizen Integrators über 300 Konnektoren

Software AG präsentiert webMethods.io

Die Multifunktions-iPaas webMethods.io der Software AG spricht neben technisch versierten Experten und Entwicklern auch Fachanwender an. Jene sollen auf über 300 Konnektoren für Apps, Daten, APIs, B2B sowie IoT-Geräte zugreifen – um schnell und intuitiv Services zu erstellen. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45199049 / Definitionen)