如何正确评估包含带有特殊字符的JSON.parse表达式的Javascript字符串?

时间:2019-04-15 00:47:03

标签: javascript json eval

我需要评估以以下方式创建的JS表达式

function createExprs(obj){
   var decl = "var i = ";
   var value = JSON.stringify(obj);
   var exprs = decl + "JSON.parse('" + value + "')";
   return exprs;
}

var i = createExprs({1:2});//i = "var i = JSON.parse('{"1":4}')"
eval(i); // works fine 

但是当obj包含任何特殊字符时失败

var i = createExprs("today\\.article") \\i="var i = JSON.parse('"today\\.article"')"
eval(i) //  Unexpected token . in JSON 

1 个答案:

答案 0 :(得分:0)

您需要转义"

"var i = JSON.parse('\"today.article\"')"