Javascript eval()无法使用传递的字符串

时间:2012-09-11 22:41:13

标签: javascript eval

我的代码段:

function receive(mag)
{
    var text = eval(mag);
    alert(text);
}

receive('["magnolia,", ["Magnolia (Flower)"], [], [], [], [], [], [[3, 19019, "INV_MAG_39 ", 5]]]');

当我在示例中传递字符串(如上所示)时,eval(mag)不起作用。 但如果我直接这样做:

function receive(mag)
{
    var text = eval('["magnolia,", ["Magnolia (Flower)"], [], [], [], [], [], [[3, 19019, "INV_MAG_39 ", 5]]]');
    alert(text);
}

确实有效。 有没有人知道什么是错的?如何使用传递的变量?

1 个答案:

答案 0 :(得分:4)

我认为你错过了括号:

eval('(' + mag + ')')

但为什么不使用JSON.parse ??

var text = JSON.parse(mag);