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

2018-08-03  本文已影响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()方法应该注意的点

上一篇 下一篇

猜你喜欢

热点阅读