JSON

JSON

Die JavaScript Object Notation, kurz JSON (IPA: /ˈdʒeɪsʌn/), ist ein kompaktes Computer-Format in für Mensch und Maschine einfach lesbarer Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Obwohl der Name auf eine alleinige Verwendung in JavaScript hindeutet, ist JSON ein unabhängiges Format, welches theoretisch in jeder Programmiersprache eingesetzt werden kann. Es existieren JSON-Schnittstellen unter anderem für C, C#, ColdFusion, Erlang, Haskell, Java, JavaFX, JavaScript, Perl, PHP, Adobe Flash, Python, Ruby und Smalltalk.

Inhaltsverzeichnis

Unterschied zu XML

Der größte Unterschied von JSON zu XML ist die etwas kompaktere Kodierung von Datenstrukturen, wodurch im Gegensatz zu XML der Code lesbarer wird und weniger Overhead produziert wird. Letzteres relativiert sich jedoch durch die in der Praxis nahezu immer genutzte Komprimierung stark. Außerdem kann JSON z. B. in JavaScript direkt mit der eval()-Funktion in ein JavaScript-Objekt umgesetzt werden.

XML ist eine Auszeichnungssprache und somit vielseitiger einsetzbar als JSON, welches keine Auszeichnungssprache, sondern ein Datenaustauschformat ist. XML ist außerdem weiter verbreitet.

Beide Formate sind nicht unbedingt zum Repräsentieren von großen Binärdatenmengen geeignet.

Datenstrukturen

JSON kennt Objekte, Arrays, Zeichenketten, Zahlen, boolesche Werte (true, false) und null. Daten können beliebig verschachtelt werden, beispielsweise ist ein Array von Objekten möglich. Als Zeichenkodierung benutzt JSON standardmäßig UTF-8; UTF-16 und UTF-32 sind auch möglich.

Formatdefinition

  • Ein Objekt beginnt mit { und endet mit }. Es kann eine durch Kommata geteilte, ungeordnete Liste von Eigenschaften enthalten.
  • Eine Eigenschaft besteht aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt.
  • Ein Schlüssel ist eine Zeichenkette.
  • Ein Wert ist ein Objekt, ein Array, eine Zeichenkette, eine Zahl oder einer der Ausdrücke true, false oder null.
  • Ein Array beginnt mit [ und endet mit ]. Es kann eine durch Kommata geteilte, geordnete Liste von Werten enthalten.
  • Eine Zeichenkette beginnt und endet mit Anführungszeichen ("). Sie kann Unicode-Zeichen und Escape-Sequenzen enthalten.
  • Ein boolescher Wert wird durch die Ausdrücke true bzw. false dargestellt. Es werden keine Anführungszeichen hierfür gesetzt.
  • Eine Zahl ist eine Folge der Ziffern 0-9. Diese Folge kann durch ein negatives Vorzeichen eingeleitet und einen Dezimalpunkt . unterbrochen sein. Die Zahl kann durch die Angabe eines Exponenten e oder E ergänzt werden, dem ein Vorzeichen + oder und eine Folge der Ziffern 0-9 folgt.
  • Leerraum-Zeichen sind beliebig verwendbar.

Beispiel

{
  "Kreditkarte"   : "Xema",
  "Nummer"        : "1234-5678-9012-3456",
  "Inhaber"       : {
    "Name"        : "Reich",
    "Vorname"     : "Rainer",
    "Geschlecht"  : ""männlich"",
    "Vorlieben"   : [
      "Reiten",
      "Schwimmen",
      "Lesen"
    ],
    "Alter"       : null
  },
  "Deckung"       : 1e+6,
  "Währung"       : "EURO"
}

Einsatzgebiete

  • In Verbindung mit JavaScript on Demand (JOD) oder Ajax zur Übertragung von Daten zwischen Client und Server
  • Ersatz für XML in Bereichen, wo Ressourcen (Datenvolumen, Geschwindigkeit der Übertragung) sparsam eingesetzt werden sollen. Dies gilt im Besonderen bei der Entwicklung von desktopähnlichen Webanwendungen.

Ähnliche Technologien

Mit YAML existiert eine ähnliche Technologie. YAML ist eher an Ruby orientiert, ist aber kein ausführbarer Code. Auch hierbei handelt es sich um einen „Document Object Model“-Dateityp.

NextSTEP bzw. MacOS X kennt eine ähnliche Technik, um einfache Objektbäume zu laden oder zu speichern, sie heißen dort „Property Lists“. Diese erlauben ebenfalls die Speicherung von Werten der Typen Array, Dictionary, boolescher Wert, Binärdaten (Base64-kodiert), Datum, Zahl und Zeichenketten, entweder als XML, als kompaktes Binärformat oder als ASCII bzw. UTF-8.

Symbolische Ausdrücke in Lisp Notation beschreiben sowohl Daten als auch Code.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • JSON — Расширение .json MIME application/json Тип формата Data interchange Расширен из JavaScript Стандарт(ы) RFC 4627 Сайт …   Википедия

  • JSON — JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML. La simplicidad de JSON ha dado lugar a la… …   Wikipedia Español

  • JSON — infobox file format mime = application/json extension = .json genre = Data interchange standard = RFC 4627JSON (pronEng|ˈdʒeɪsɒn, i.e., Jason ), short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text …   Wikipedia

  • JSON — JavaScript Object Notation JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l information structurée. Créé par Douglas Crockford, il …   Wikipédia en Français

  • Json — JavaScript Object Notation JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l information structurée. Créé par Douglas Crockford, il …   Wikipédia en Français

  • JSON-RPC — is a remote procedure call protocol encoded in JSON. It is a very simple protocol (and very similar to XML RPC), defining only a handful of data types and commands. In contrast to XML RPC or SOAP, it allows for bidirectional communication between …   Wikipedia

  • JSON-RPC — (JavaScript Object Notation Remote Procedure Call) ist ein Protokoll zum Aufruf entfernter Methoden in Computersystemen, ähnlich wie XML RPC (die Daten werden jedoch in JSON statt in XML gesendet).[1] Bei der Spezifikation wurde darauf geachtet,… …   Deutsch Wikipedia

  • JSON — JavaScript Object Notation (Computing) …   Abbreviations dictionary

  • JavaScript Object Notation — JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l’information structurée. Créé par Douglas Crockford, il est décrit par la RFC 4627 …   Wikipédia en Français

  • JavaScript Object Notation — Die JavaScript Object Notation, kurz JSON (IPA: /ˈdʒeɪsʌn/), ist ein kompaktes Datenformat in für Mensch und Maschine einfach lesbarer Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Jedes gültige JSON Dokument soll ein gültiges… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”