我找不到为什么这个小代码片段在IE8中不起作用的原因
var a = {"ff": "test"};
eval('('+a+')');
我收到错误
']'预期'。
答案 0 :(得分:0)
当连接对象a
以形成eval'd字符串的一部分时,将调用a.toString()
,它将输出[object Object]
。 你想要的是将{"ff": "test"};
连接到eval'd字符串中,因此您需要使用JSON.stringify()
来实现该目标。
试试这个:
eval('('+JSON.stringify(a)+')');
或者您也可以在第一行的对象声明周围加上引号:
var a = '{"ff": "test"}';
答案 1 :(得分:0)
var a = {"ff": "test"};
eval('('+a+')');
评估为:
([object Object])
这显然不是有效的JavaScript。如果要保留数据结构,可以使用JSON.stringify()
和JSON.parse()
。
var a_to_json = JSON.stringify(a);
var a_from_json = JSON.parse(a_to_json);