JSON parsen
Lösung
(function($) { $(document).ready(function() { var serializedJSON = '{"title":"Hallo Welt!","body":"It\'s great to be alive!"}'; var message = JSON.parse( serializedJSON ); }); })(jQuery);
Diskussion
Wie im vorigen Rezept besprochen kümmern wir uns jetzt um das Parsen oder Dekodieren eines JSON-Strings.
Warning
Manche der hier vorgestellten Vorgehensweisen sind unsicher und können zu potenziellen Sicherheitslücken führen. Verwenden Sie daher nur Daten aus vertrauenswürdigen Quellen.
Der einfachste Ansatz beim Einlesen von
JSON-Daten ist der Aufruf von eval()
mit dem
String. Beachten Sie, dass hier ernsthafte Sicherheitsprobleme
auftreten können, da eval()
die
gesamte JavaScript-Funktionalität verarbeiten kann und sich nicht
nur auf JSON beschränkt. Dies bedeutet, eine böswillige Person
könnte Code ausführen lassen, der im JSON-String eingebettet ist.
Wir empfehlen dieses Vorgehen daher nicht. Stattdessen wollen wir
die JSON
-Bibliothek von Douglas
Crockford nutzen, die im vorigen Rezept erwähnt wurde. (Diese
Bibliothek nutzt zwar auch eval()
,
aber sie führt eine Vorverarbeitung der Daten durch und sorgt so
dafür, dass sie sicher sind.)
var serializedJSON = '{"title":"Hallo Welt!","body":"It\'s great to be alive!"}'; var message = JSON.parse( serializedJSON );
Wir können jetzt mit unserem Message-Objekt wie mit jedem anderen JavaScript-Objekt arbeiten:
alert( "Neue Nachricht!\nTitle: " + message.title + "\nBody: " + message.body);
Die JSON
-Bibliothek sowie weitere Ressourcen zu JSON
lassen sich unter http://jquery-cookbook.com/go/json
herunterladen.