eval拒绝在Javascript中将字符串更改为对象

时间:2012-06-18 05:17:54

标签: javascript eval

我尝试使用eval将字符串更改为对象,但失败了。

var obj ="{a:0, b:-1}";
eval(obj);

错误消息说“无效标签”,但即使这样也不起作用

var obj="{'a':'0', 'b':'-1'}";

代码出了什么问题?

2 个答案:

答案 0 :(得分:2)

eval json时,你必须在它周围放置括号,所以看起来应该是这样(否则它不是一个完整的javascript声明):

eval('('+obj+')');

这解决了错误,但生成的对象没有保存到任何变量 - 因此您可能希望最终得到其他内容,例如:

eval('obj = '+obj);

这也是一个完整的陈述,此外,obj现在是一个“真正的”对象。

答案 1 :(得分:0)

你也可以尝试这样的事情。

var obj=eval(" [{'a':'0', 'b':'-1'}] ");
alert(obj);