201110Apr

JSON: Grundlagen in JavaScript und PHP

Wer sich mit Web Services, REST und SOAP auseinandersetzt, wird womöglich auch vor der Frage stehen, ob sich für das aktuelle Projekt XML oder JSON besser eignet. Beide Formate sind weit verbreitet und ziehen unterschiedliche Eigenschaften mit sich.
Die JavaScript Object Notation, kurz JSON, kommt im Vergleich zu XML mit weniger Overhead aus, da das Datenformat einer einfacheren Notation unterliegt. Zudem können JSON-Datensätze per "eval()" von JavaScript ausgeführt werden. JSON-Datensätze können zudem per "eval()" ausgeführt werden, wobei diese Möglichkeit nur in bestimmten Fällen ausgenutzt werden sollte. Somit stellt JSON gerade im Ajax-Bereich eine solide Lösung dar. Ein Nachteil wäre hingegen die fehlende Typisierung, doch das betrifft JavaScript im Allgemeinen.

JSON Basics - What You Need to Know

Da das Parsen von XML-Daten via JavaScript zum einen langsam und zum anderen von Browsern unterschiedlich ausgeführt wird, empfiehlt sich der Einsatz von JSON. Ein schöner Artikel über die Grundlagen von JSON wurde kürzlich bei Elated veröffentlicht. Darin wird das nötige Grundlagenwissen vermittelt und zudem finden sich darin Beispiele, wie JSON in JavaScript und PHP verwendet werden kann.
Wer XML-Daten in JSON konvertieren möchte, kann in JavaScript auch die Methode von David Walsh ausprobieren.

Kommentare

Lars schrieb am 12.04.2011 #1

JSON-Datensätze per "eval()" auszuführen ist nicht zu empfehlen. Es sollte die native JSON-Implementierung benutzt werden oder das JavaScript-Snippet von json.org. Die meisten JavaScript-Frameworks bringen zu dem einen Parser mit.

Zu "eval()": https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Eval#Don%27t_use_eval!

https://developer.mozilla.org/en/Downloading_JSON_and_JavaScript_in_extension

Matthias schrieb am 12.04.2011 #2

Danke für den Hinweis. Ich hatte bewusst "können" geschrieben, da es theoretisch möglich ist. Aber grundsätzlich gilt natürlich "eval is evil" ;-)
Ich habe den Artikel entsprechend geändert.

Webmasterle schrieb am 12.04.2011 #3

Wenn man Cross-Site-JSON nutzen will, muss man allerdings durchaus den eval Weg gehen, oft auch "ScriptTagProxy" o.ä. genannt.

Das Streichen im Artikel dürfte Freizeit-Coder eher verwirren.