Zum Inhalt springen

JSON

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. Januar 2007 um 00:16 Uhr durch Thijs!bot (Diskussion | Beiträge) (Bot: Ergänze: tr:JSON). Sie kann sich erheblich von der aktuellen Version unterscheiden.

JSON, kurz für JavaScript Object Notation und gesprochen wie der Name Jason, 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-Implementierungen unter anderem für C, C#, Java, JavaScript, Perl, PHP, Python, Ruby und Smalltalk.

Unterschied zu XML

Der am meisten betonte Unterschied von JSON zu XML ist die etwas kompaktere Kodierung von Datenstrukturen, wodurch im Gegensatz zu XML weniger Overhead produziert wird und die Datenmenge teilweise kleiner ausfällt. Darüber hinaus kann JSON schneller in die nativen Datentypen der eingesetzten Programmiersprache umgewandelt werden. So wird in JavaScript eine JSON-Zeichenkette direkt mit der eval()-Funktion in ein JavaScript-Objekt umgesetzt.

XML ist eine Auszeichnungssprache (Markup Language) und somit vielseitiger einsetzbar als JSON, welches keine Auszeichnungssprache, sondern ein Datenaustauschformat ist. XML genießt außerdem eine weitere Verbreitung.

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

Unterstützte 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.

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 ein oder mehrere Unicode-Zeichen und Escape-Sequenzen enthalten.
  • Ein boolscher 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 einem 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"       : "EUR"
}

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 Anwendungen.