Tengo una parte de un marco de depuración que necesita poder ejecutar objetos de evaluación de tiempo.javascript eval y evaluación de objeto
Específicamente, si tengo una cadena como esta "{a: 1, b:2}"
, debe evaluarla en un objeto con los miembros a
y b
con esos valores. Sin embargo, si lo hago eval("{a: 1, b:2}")
, parece evaluarlo como una afirmación, y dice algo acerca de una etiqueta ilegal.
he cortado de modo que se evalúa como esto:
eval("var x=" + str + "; x;");
que parece funcionar, pero parece un horrible truco. ¿Alguna sugerencia sobre cómo hacer esto mejor?
(Por cierto, soy consciente de los peligros de eval, pero esto es parte de un marco de depuración que no será visto por los usuarios reales.)
Ver: http://stackoverflow.com/questions/3360356/why-the-open-quote-and-bracket-for-eval-jsonstring-when-parsing-json – CMS