JSON als XML-Alternative

1 | 54494 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "JSON als XML-Alternative " mit Ihrem Wissen!

Anzeige Hier werben

JSON als XML-Alternative in JavaScript

XML-Daten sind in vielen Fällen oft nicht der ideale Weg, um Daten zu strukturieren. Durch das Tag-System von XML werden oft kleine Datenbestände sehr aufgebläht und unübersichtlich. Zusätzlich ist das Ansprechen einzelner Knoten (XML-Nodes) in einer XML-Datei nicht immer leicht.

Eine Alternative dazu bietet JSON, kurz für JavaScript Object Notation, einer Vorgehensweise, um Daten auf einfache Weise zu strukturieren. JSON ist sehr leicht zu erlernen, zu handhaben und hat sich inzwischen für viele weitere Programmiersprachen durchgesetzt.

Der große Vorteil von JSON im Vergleich zu XML liegt in der einfachen Handhabung. Da JSON selbst gültiges Javascript darstellt, kann es direkt ausgeführt und somit in ein Javascript-Objekt überführt werden. Der Zugriff auf die einzelnen Eigenschaften kann dann über normalen Attributzugriff geschehen.

Format

Wie bereits erwähnt, ist JSON gültiges Javascript. Es greift hierbei auf einige Kurzformen zurück:

Objektart
Format
Beispiel
String
Text innerhalb von Anführungszeichen
"text"
Zahlenwert
Folge von 0 bis 9, optional mit Dezimalpunkt und/oder Exponent
1.6
boolscher Wert
true oder false
true
Liste/Array
Aufgelistete Werte innerhalb von eckigen Klammern, durch Komma getrennt
[wert, wert2, ...]
Objekt/"assoziativer Array"
Index/Wert-Zuordnung mithilfe eines Doppelpunkts innerhalb von geschweiften Klammern, durch Komma getrennt {"attname": wert, "attname2": wert2, ...}

Durch das Format lassen sich nahezu beliebige Datenstrukturen darstellen, was eine der großen Stärken von JSON darstellt.

Beispiel

Unterhalb sehen Sie einige einfache Beispiele wie Sie Daten mit JSON erstellen

 
HTML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
    "json_ist_toll": true,
    "namen": [
        "Fabian", 
        "Stefan",
        "Simon",
        "Joerg"
        "Bettina",
        "Uwe",
        "Mark",
        "Franz",
        "Heinz"
    ],
    "nummer": 7
}

Wird der JSON-Code dekodiert, erhält man ein Objekt mit den Attributen "json_ist_toll" (boolscher Wert: true), "namen" (mit einer Liste von Namen) und "nummer" (Zahlenwert: 7).

Verwendung in Scriptsprachen

Grundsätzlich gibt es mittlerweile in fast allen gängigen Programmiersprachen eine Anbindung bzw. Schnittstelle zu JSON. Diese ist zur heutigen Zeit auch schon sehr oft in der Standard-API vorhanden.

Javascript

Da JSON gültigen Javascript-Code darstellt, kann es sehr einfach in ein Javascript-Objekt umgewandelt werden, indem eval() verwendet wird.

Laden von JSON mithilfe von eval()  
HTML
1
2
var jsonData = '{"foo": "bar"}';
var jsonVar = eval('(' + jsonData + ')');

Der Beispiel-Quelltext sollte aus Sicherheitsgründen so nie zum Einsatz kommen. Stattdessen sollten Frameworks oder ein unabhängiger JSON-Parser eingesetzt werden. Für nähere Informationen einfach weiterlesen.

Von dieser Art JSON-daten auszuwerten wird aber abgeraten, da hier beliebiger Javascript-Code ausgeführt werden kann und somit Sicherheitslücken in die Javascript-Applikation gerissen werden können. Auch ist die Konvertierung eines Objekts nach JSON nicht ohne weiteres möglich.

Deswegen sollte für die Verwendung von JSON in Javascript immer ein Framework wie mootools zum Einsatz kommen, welches saubere Funktionen bietet, um JSON-Daten zu parsen und Objekte nach JSON umzuwandeln. Da hierbei meist kein eval() verwendet wird und der Code dementsprechend wirklich in Javascript selbst geparst werden muss, ist die Verarbeitung von JSON-Daten zwar evtl. etwas langsamer, dafür können Frameworks aber JSON-Daten aus möglicherweise unsicheren Quellen verarbeiten. Das Einschleusen von Code ist nicht (ohne weiteres) möglich.

Kann kein Framework zur Verarbeitung von JSON-Daten eingesetzt werden, sollte trotzdem unbedingt ein Parser zum Einsatz kommen und auf keinen Fall eval() eingesetzt werden. Eine von Frameworks unabhängiger Parser kann beispielsweise auf json.org heruntergeladen werden. JSON-Daten können hier durch JSON.parse(jsonData) geladen und mithilfe von JSON.stringify(jsonObject) dekodiert werden.

PHP

Auch in PHP gibt es Funktionen, um JSON-Daten zu verarbeiten. Dank diesen beiden Funktionen ist das Zusammenspiel, welches zwischen JavaScript und PHP mittels Ajax entsteht, extrem flexibel. Die Verwendung von JSON in PHP wird in einem eigenen Artikel behandelt.


Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 8 Personen an der Seite "JSON als XML-Alternative " mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "JSON als XML-Alternative " hier bearbeiten.