Definition: das Datenaustauschformat JavaScript Object Notation

Was ist JSON?

| Autor / Redakteur: tutanch / 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

Public, Private, Hybrid & Co.: Definitionen rund um Cloud Computing

Definitionen rund um Cloud ComputingAlle 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

CMS aus der Cloud oder lokal? Eine Entscheidungshilfe

To Cloud or Not to Cloud

CMS aus der Cloud oder lokal? Eine Entscheidungshilfe

Content-Management-Systeme (CMS) steuern in Richtung „Wolke“ (Cloud) - dort soll es schneller, besser und preiswerter zugehen. Aber wie kann man evaluieren, ob die Cloud das richtige für ein Enterprise-CMS ist? Und welche Cloud-Ressourcen sind sinnvoll? lesen

Neo4j geht in die Cloud

Graphdatenbank

Neo4j geht in die Cloud

Auf einer Roadshow-Veranstaltung in Berlin hat Neo4j, Hersteller einer verbreiteten Graphdatenbank, Ausblick auf die Weiterentwicklung seiner Datenbankplattform gewährt. Drei deutsche Anwender, darunter DATEV und Daimler, stellten die Projekte vor, die sie mit Neo4j realisieren. lesen

Couchbase Mobile 2.0 verfügbar

Vereinfachte API, SQL-Query und Volltextsuche

Couchbase Mobile 2.0 verfügbar

Couchbase Mobile 2.0 soll die Datenbewegung zwischen Cloud und Edge verbessern. Mit dem jetzt vorgestellten Release verspricht der Hersteller vereinfachte API, Volltextsuche, automatische Konfliktlösung und SQL-Abfragen. lesen

NoSQL-Datenbanken im Vergleich

NoSQL

NoSQL-Datenbanken im Vergleich

NoSQL-Datenbanken wurden aus der Notwendigkeit heraus entwickelt, große, unterschiedliche Mengen von Dimensionen wie Raum, Zeit und Lokation auf möglichst effiziente Weise zu speichern und zu verarbeiten. Mittlerweile sind sie die unabdingbare Alternative zu relationalen SQL-basierten Datenbanken. Doch nicht jede NoSQL-Datenbank eignet sich für jeden Zweck. Tatsächlich sind die meisten sogar recht spezialisiert. lesen

Mehr Transparenz für Windows 10

Windows Diagnostic Data Viewer

Mehr Transparenz für Windows 10

Die für die Anwender nicht transparente Übermittlung von Diagnosedaten an Microsoft war bisher ein gravierender Kritikpunkt an Windows 10. In Zukunft kann man mit dem Diagnostic Data Viewer die übertragenen Rohdaten selbst kontrollieren. Zunächst ist die Funktion in den Insider-Versionen von Windows 10 verfügbar. lesen

Wie die Erweiterung Ihres Unternehmens in die Cloud gelingt

Cloud Security

Wie die Erweiterung Ihres Unternehmens in die Cloud gelingt

Die offensichtlichen Vorteile der Verschiebung von Anwendungen in die Cloud bringen gleichzeitig große Herausforderungen mit sich. Ganz gleich, ob ein Unternehmen die öffentliche Cloud, eine private Cloud oder – wie es häufig der Fall ist – eine Hybrid-Cloud nutzt, muss dennoch immer die Anwendungsperformance optimiert werden, um alle Vorteile der Cloud-Technologie nutzen zu können und ein besseres Geschäftsmodell möglich zu machen. lesen

Tibco will alles mit allem intelligent verbinden

Nachbericht Tibco Now 2017 in Berlin

Tibco will alles mit allem intelligent verbinden

Unter dem Begriff „Connected Intelligence“ hat der BI-Spezialist Tibco in Berlin eine Reihe von neuen Produkten vorgestellt, die IT-Anwendern helfen sollen, die Vorteile der Cloud und des Internets der Dinge (IoT) zu nutzen. lesen

Was ist eine REST API?

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

Was ist eine REST API?

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

Was ist Middleware?

Definition: Middleware als Vermittlungsebene für Anwendungen

Was ist Middleware?

Anders als der verwandte Begriff Software arbeitet Middleware völlig unsichtbar im Hintergrund. Wie sich vom Namen leicht ableiten lässt, ist Middleware zwischen zwei anderen Dingen angesiedelt. Es handelt sich um eine Art Software, die zwischen einem Betriebssystem und den darauf laufenden Applikationen ausgeführt wird. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45199049 / Definitionen)