字符串转换为对象报错Uncaught SyntaxError: Unexpected token ' in JSON at position 1 at JSON.parse (

  • 有一个业务需求, 后台传一个商品属性, 但是这个属性, 是一个字符串, 我用JSON.parse转换报错了, 如图:
    报错截图.png

    然后想着有问题找百度嘛, 百度来百度去, 都是说多个什么标点少个标点, 或者从sessionStorage提取中文, 但是我遇到的问题不一样.我们来看看出错代码
    image.png

    上面这里循环, 然后会有点击事件, 用的模板字符串, 然后在上一篇文章有这个传对象报错的
    下面就是从别的页面引入一个方法, 要把这个对象传到那个公共页面
    image.png

    然后,它会有一个方法, 用JSON.parse()去转换这个字符串为对象.
    image.png

    然后我这样传就报错了.我就使劲在找原因, 首先我排除了值没有传到的原因, 其次我打印了是string类型, 要不然JSON.parse()也转不了, 那么在原先方法那里用JSON.stringify()转换咯, 也没用, 总之该试的都试了.万万没想到
    image.png

    看到没有, JSON.parse()转换, 是要字符串类型, 咋眼一看, 外面是要单引号的, 不是双引号包着的, 如果不信, 我可以给你做个实验
    image.png

    所以发现了之后, 就要把双引号替换成单引号, 这个时候就要用到正则了replace(/\'/g, '"')
    image.png

如果是要单引号转双引号replace(/\"/g, "'");

  • 完美解决.
  • 如果有帮到你, 记得点个赞呦

你可能感兴趣的:(字符串转换为对象报错Uncaught SyntaxError: Unexpected token ' in JSON at position 1 at JSON.parse (