1

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

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

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

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

代码有什么问题?

4

2 回答 2

2

eval输入 json 时,你必须在它周围加上大括号,所以它应该看起来像(否则它不是一个完整的 javascript 语句):

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

这解决了错误,但生成的对象没有保存到任何变量 - 所以你可能想得到其他东西,比如:

eval('obj = '+obj);

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

于 2012-06-18T05:25:29.243 回答
0

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

var obj=eval(" [{'a':'0', 'b':'-1'}] ");
alert(obj);
于 2012-06-18T05:32:13.093 回答