VM25039:1 Uncaught SyntaxError: Invalid or unexpected token
简介
VM25039:1 Uncaught SyntaxError: Invalid or unexpected token
问题
使用 eval('(' + jsonstr + ')')
或JSON.parse(jsonstr)
对json
字符串转对象时报错了。
VM25039:1 Uncaught SyntaxError: Invalid or unexpected token
解决
错误原因:JSON.parse
或 eval()
转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);
结果不报错了。