JSON

Beschreibung

JSON ist die Abkürzung für JavaScript Object Notation und kommt ursprünglich aus dem Kontext der JavaScript-Programmiersprache. Es handelt sich dabei um ein schlichtes, kompaktes, aber vollständiges Datenaustauschformat für den effizienten Austausch von Informationen zwischen Anwendungen. Obwohl es einem textbasierten Formatismus gehorcht, welcher zwangsläufig eine gewisse Spachunabhängigkeit mit sich bringt, hält es sich an Konventionen, die denen der C-Family -Programmiersprachen (unter anderem: C, C++, C#, Java, JavaScript, Perl, Python), sehr ähnlich sind. Dieses Verhalten macht JSON zu einer idealen Brücke im Datenaustausch.

Charakteristisch ist auch die hierarchische Modellierung elementarer Daten zu komplexen semistrukturierten Datenstrukturen, wobei der Grad der Strukturierung sehr einfach an den jeweiligen Anwendungsfall angepasst werden kann [Flo05].

Unstrukturierte und schemalose Informationen machen heutzutage einen nennenswerten Teil der Gesamtinformationen aus und übersteigen das Leistungspotential der Abbildung durch relationaler Datenbanken. Durch Datenformate wie JSON (oder z.B. XML) ist man dem Bedürfnis nach mehr Flexibilität in einer "relationalen Welt", in der nicht mehr alles in die vorgegeben Formen passt, nachgekommen und hat geantwortet.

Ein weiterer Vorteil liegt in der einfachen Handhabung von JSON: Es ist sowohl für einen Menschen gut lesbar, als auch von einem Computer direkt verarbeitbar. JSON-Objekte werden zur Datenübertragung genutzt. Im Fall von CouchDB und anderen dokumentenorientierten Datenbanken auch zur Datenspeicherung.

Sprachaufbau

JSON ist auf zwei grundlegende Strukturen gegründet:

  • Eine Sammlung von NAME/VALUE-Paaren.
  • Eine geordnete Liste von VALUES.

Beides kommt in heutigen Programmiersprachen vor und ist daher universell einsetzbar. In JSON werden die in JavaScript vorhandenen Basisdatentypen unterstützt.
Die nachfolgende rekursive? Strukturbeschreibung soll den Aufbau verdeutlichen:

Object


Objekt-Bildungsvorschrift (Quelle: http://www.json.org/)

Ein Objekt ist eine ungeordnete Anordnung von NAME/VALUE-Pairs und die Grundlage eines jeden JSON-Dokuments.

object
{ }
{ members }


Members

members
pair
pair, members


Pair

pair
string: value


   | Array-Bildungsvorschrift (Quelle: http://www.json.org/)

Array

object
[ ]
[ elements ]


Elements

   | Value-Bildungsvorschrift (Quelle: http://www.json.org/)
elements
value
value, elements


Value

  • object
  • array
  • string
  • number
  • true
  • false
  • null



Typaufbau

Nachfolgend sollen auch noch der Aufbau der zwei Basisdatentypen String und Number dargestellt werden.

String


String-Bildungsvorschrift (Quelle: http://www.json.org/)

A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. A string is very much like a C or Java string.





















Number


Number-Bildungsvorschrift (Quelle: http://www.json.org/)

A number is very much like a C or Java number, except that the octal and hexadecimal formats are not used.
















Beispiel

Hier ein beispielhaftes JSON-Objekt mit NAME/VALUE-Pairs, MEMBERS und einem ARRAY:

{

  "Herausgeber": "Xema",
  "Nummer": "1234-5678-9012-3456",
  "Deckung": 2e+6,
  "Währung": "EURO",
  "Inhaber": {
    "Name": "Mustermann",
    "Vorname": "Max",
    "männlich": true,
    "Hobbys": [ "Reiten", "Golfen", "Lesen" ],
    "Alter": 42,
    "Kinder": [],
    "Partner": null
  }

}

Kategorien: Neue DB-Entwicklungen, Dokument-DB, NoSQL, !BSON, J

Quellen: