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 warumeval('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:|
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:|