VM25039:1 Uncaught SyntaxError: Invalid or unexpected token

臭大佬 2020-12-16 16:27:28 755
前端 
简介 VM25039:1 Uncaught SyntaxError: Invalid or unexpected token

问题

使用 eval('(' + jsonstr + ')')JSON.parse(jsonstr)json字符串转对象时报错了。

VM25039:1 Uncaught SyntaxError: Invalid or unexpected token

解决

错误原因:JSON.parseeval()json字符串时遇到一些特殊字符需要先转义,

可以用str.replace(/\n/g,"\\\\n")转义,'\\'转成单个'\','\\n'转成'\n',最后转成'\\n'这样就可以用parse转成对象时变为'\n',取出的字符串设置到html文本中\n被解析为换行。

栗子

// goods是json字符串

var goods = '{:json_encode($info.order_goods)}';

 //goods = eval('(' + goods.replace(/\n/g,"\\\\n") + ')');
goods = JSON.parse(goods.replace(/\n/g,"\\\\n"));
console.log(goods);

结果不报错了。