Timo "God's Boss" Reitz: Verständnisproblem JSON

Beitrag lesen

Ich hab ein bisschen gegoogled und auf ein Beispiel in der Form gestoßen.
var foo = eval('(' + request.responseText + ')');

So funktioniert es.
Ich würde jetzt gern wissen warum eval('request.responseText'); nicht als Array "erkannt" wird. Die Syntax bei eval('('+...+')'); ist mir also nicht ganz klar.

Könnte mir das vielleicht jemand erklären?

Ja, es scheint so, dass bei Objektliteralen in JSON eval bisweilen glaubt, ein Block-Statement vor sich zu haben und dann falsch parst. Die Klammern verhindern das, da dann klar ist, dass ein Ausdruck ausgewertet werden soll.

Es gibt übrigens unter JSON in JavaScript den Verweis auf einen freien (Public Domain) JSON-Parser, den könntest du statt eval nehmen. Wäre m.E. die sauberere Alternative.

--
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|