js字符串转换成数组对象eval方法报错的时候

有时候我们拿到的后台数据是这样的

  let a = "[{classify:1,name:'女士'},{classify:2,name:'男士'}]";
  可以用  **eval(a)** 转换   ,但是小程序是会报错的。


直接用JSON.parse(a)也会报错。

在这里插入图片描述
在这里插入图片描述
是因为JSON对象的格式错误,里面不能用单引号,key键也需要用双引号,否则是无法转换成功的。我们把它转换成JSON的正确格式就可以了 类似如下。。
js字符串转换成数组对象eval方法报错的时候_第1张图片
js字符串转换成数组对象eval方法报错的时候_第2张图片
简单的替换下。。

        let a = "[{classify:1,name:'女士'},{classify:2,name:'男士'}]";
        let b = a.replace(/classify/g, '"classify"');
        let c = b.replace(/name/g, '"name"');
        let d = c.replace(/'/g, '"');
        console.log(JSON.parse(d)) 
        **核心思维就是转化成JSON格式再去解析!对您有帮助的话就点个赞吧**

你可能感兴趣的:(JavaScript)