在项目中遇到一个问题:在前端需要把后台返回的json字符串转换成一个json对象,可是从后台返回的字符串中含有转义字符:\"
一、先确定一个问题
JSON.parse()参数需要是string类型
由于传递的参数是object 类型 那么JSON.parse() 就会把object类型默认转成string 结果为“[object object]”
二、如果是字符串 但是还是转义报错 可能是转义符等的原因造成无法转义 最后在网上查到方法可以如下处理:
var json = eval('(' + data + ')');
但是在eslint格式下 eval函数会报出警告:eval是有害的
优化后:
jsonEval (fn) {
var Fun = Function // 一个变量指向Function,防止有些前端编译工具报错
return new Fun('return ' + fn)()
},
let str = this.jsonEval(res.data.TargetText)
这样就可以解决了。