我尝试使用eval将字符串更改为对象,但失败了。
var obj ="{a:0, b:-1}";
eval(obj);
错误消息说“无效标签”,但即使这样也不起作用
var obj="{'a':'0', 'b':'-1'}";
代码出了什么问题?
答案 0 :(得分:2)
当eval
json时,你必须在它周围放置括号,所以看起来应该是这样(否则它不是一个完整的javascript声明):
eval('('+obj+')');
这解决了错误,但生成的对象没有保存到任何变量 - 因此您可能希望最终得到其他内容,例如:
eval('obj = '+obj);
这也是一个完整的陈述,此外,obj
现在是一个“真正的”对象。
答案 1 :(得分:0)
你也可以尝试这样的事情。
var obj=eval(" [{'a':'0', 'b':'-1'}] ");
alert(obj);