JSON.parse 解析json字符串时,遇换行符报错 SyntaxError: Unexpected token in JSON at position
var resStr = '{"model":"HP EliteBook 850 G2","serial":"5CMN89KH","cpu":"Intel Core i5-5300U 2.30GHz","memory":"共8GB \nDDR3 0MHz 8GB","monitor":"1920X1080"}';
var resJson = JSON.parse(resStr);
报错:
[system] SyntaxError: Unexpected token
in JSON at position 110
at JSON.parse (<anonymous>)
at VueComponent.FunctionName (index.vue?c4d5:36)
错误原因:JSON.parse
转json
字符串时遇到一些特殊字符需要先转义。
用str.replace(/\n/g,"\\n")
转义,'\'转成单个'\','\n'转成'\n',最后转成'\n'这样就可以用parse转成对象时变为'\n',取出的字符串设置到html文本中\n被解析为换行。
可以这样转义:.replace(/\n/g,"\\n").replace(/\r/g,"\\r")
。
如下:
var resJson = JSON.parse(resStr.replace(/\n/g,"\\n").replace(/\r/g,"\\r"));