JSOIN.parse()报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse ...

在项目中遇到一个问题:在前端需要把后台返回的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)

这样就可以解决了。

猜你喜欢

转载自blog.csdn.net/weixin_50114203/article/details/130410387