原因
最近摸索着写前端项目,获取后台传来的json数据想要解析,结果报了上面这个错误。经一番资料查找,发现自己出错在:
后台返回的是json对象,而我前端解析用了JSON.parse(data)
这里不得不贴上JSON.parse()和JSON.stringify()两者的使用场景。
JSON.parse()
用途:将json字符串解析成json对象
看下面例子:
let jsonstr = '{"name": "zhangsan", "age": "20"}'
let result = JSON.parse(jsonstr)
//它的结果是一个json对象
//{"name": "zhangsan", "age": "20"}
JSON.stringify()
用途:将json对象解析成字符串
例子:
let jsonObject = {"name": "zhangsan", "age": "20"}
JSON.stringify(jsonObject)
// 结果为一个字符串 "{"name": "zhangsan", "age": "20"}"
分析
即假如后端返回的json数据本身就已经是对象Object类型,那么就无需调用JSON.parse()解析了。获取内部的数据直接response[“name”]就可以了。
综上,解析前弄清楚传回来的数据到底是什么类型。以及格式是不是正确。