jQuery 1.4 und das JSON Format

jQuery 1.4 ist schon ein Weilchen draussen und wer nun langsam mal seine bestehenden Applikationen auf die aktuelle Version umstellen will oder über Plugins dazu genötigt wird, sollte vorher einen kurzen Blick auf die Änderungen riskieren.

Es hat sich zum Beispiel eine kleine, nicht unerhebliche Sache beim Thema JSON geändert. jQuery hat sich, falls der Browser es unterstützt, davon verabschiedet JSON Strings nur mit eval() zu prüfen und evaluiert nun JSON mit einem Validator.

Deshalb sollte man sich sicher sein, dass die genutzten JSON Strings auch tatsächlich gültig sind, denn der Validator ist nicht mehr so genügsam wie der Javascript Befehl. So wurden zum Beispiel folgende Konstrukte mit eval() umgewandelt und sind unter jQuery 1.4 nicht mehr valide

{foo:"bar"} // Key nicht in "
({"foo":"bar"}) // Klammern falsch

Um solche Fehler zu vermeiden sollte zur Generierung ein Parser verwendet werden. Dafür gibt es etliche Implementierungen in den meisten Programmiersprachen.

PHP bietet zum Beispiel ab Versionen > 5.2 json_encode und json_decode an. Nutzt man ein älteres System können externe Bibliotheken verwendet werden oder manche Applikationen bringen ihre eigenen JSON Klassen mit. Bei WordPress ist das die Klasse Services_JSON (wp-includes/class-json.php) die man sich zu Hilfe nehmen kann.

$data_array = array("foo" => "bar");
$json = new Services_JSON();
$json->encode($data_array);

In anderen Sprachen kommen noch folgende Parser zum Einsatz

Python…

Java…

Habt ihr noch interessante Alternativen oder Tips in anderen Programmiersprachen?! Dann her damit!

Weiterführende Artikel

Über Clemens Tietze

Clemens Tietze ist Dipl. Inf. (FH) und arbeitet als Softwareentwickler in den Bereichen Java, PHP und Webclient-Entwicklung.
Dieser Beitrag wurde unter Tech-Blog abgelegt und mit den Tags , , , versehen. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>