美文网首页
JSON.parse()方法将字符串转化为JSON对象遇到的问题

JSON.parse()方法将字符串转化为JSON对象遇到的问题

作者: 许小花花 | 来源:发表于2018-08-03 16:16 被阅读0次

    问题

    今天在使用后台 node 将一个JSON文件传送至前端,前端使用 JSON.parse()方法解析过程中出现了解析失败的问题,类似这样

    解析失败

    分析

    具体过程是:前端请求数据,node 读取 JSON 文件,后发送至前端。node 在使用 fs 模块读取文件时,会将文件内容转化为 string 格式。
    由于我的JSON文件并不是标准的 k-v 键值对格式,而是JS 对象,也就是说 key 是没有双引号的。而 JSON.parse()方法是无法对这种类型的格式进行转化的,所以失败了。

    解决

    这里我采用了另外一种转化方法:

    this.graphData = eval("(" + res.data + ")");
    

    解决了上面的问题。

    字符串转化为对象的三种方法

    var json = JSON.parse(str)
    var json = eval("(" + str + ")")
    var json = (new Function("return " + str))()
    

    这是最常见的三种方法,当然其中JSON.parse()是有一定的局限的。

    JSON.parse()方法应该注意的点

    • 1.字符串的数据格式
      字符串中的内容必须严格按照JSON方法书写,即"key" : "value"的格式

    • 2.单引号与双引号
      只能严格使用双引号而不能使用单引号,否则失败

      1. 兼容问题
        IE6/7不支持这个方法

    相关文章

      网友评论

          本文标题:JSON.parse()方法将字符串转化为JSON对象遇到的问题

          本文链接:https://www.haomeiwen.com/subject/aqfuvftx.html