Könnte mir das vielleicht jemand erklären?
Ja, es scheint so, dass bei Objektliteralen in JSONeval
bisweilen glaubt, ein Block-Statement vor sich zu haben und dann falsch parst.Wann passiert das? Nicht bei seinem Beispiel.
var x=eval('{"x":"50"}');
wirft mir Fehler in Opera 9.52 ("Syntax Error"), Firefox 3.0.4 ("Invalid label") und Internet Explorer 6 ("';' expected") aus,var x=eval('({"x":"50"})');
funktioniert tadellos.
Danke.
Trotzdem ist natürlich das was Matze uns gezeigt hat merkwürdig. Er hatte ein Array und dort funktioniert es ohne die Klammerung:
var x=eval('[{"x":"50"}]');
Mich wunderte, dass er uns Code und einen Fehler zeigt, die ganz offensichtlich in keinem Zusammenhang stehen.
Struppi.