bug集合js1--Unexpected token o in JSON at position 1

欢迎访问个人我的博客:http://www.xiaolongwu.cngit

写在前面的话

这个问题在以前作项目时碰到过一次,当时按照网上的作法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能正常使用,就没多想,也没深究是什么缘由。github

但是此次又碰到了,因此此次必需要弄明白缘由。json

先看看它的做用

JSON.parse()用于从一个字符串中解析出json对象,如数组

var str = '{"name":"LeonWu","age":"18"}'

JSON.parse(str);

//结果为一个Object
// age: "18";
// name: "LeonWu";

JSON.stringify()用于从一个对象解析出字符串,如学习

var a = {a:1,b:2,c:"LeonWu"};
 
 JSON.stringify(a);
 
 //结果为 "{"a":1,"b":2,"c":"LeonWu"}"

背后的缘由

报错的缘由

由于你要转换的数据原本就是object,JSON.parse()这个方法是把一个字符串解析出json对象,你再转换就会报错;.net

为何会有这样的错误

由于把Object做为参数传到JSON.parse()里时,首先会默利用toString()方法转为string,结果为"[object Object]"。code

JSON.parse()将第一个字符'['理解为数组的开始,第二字符'o'不知道怎么处理;因此就抛出了上面的错误信息 Unexpected token o in JSON at position 1。对象

--------------------- 分割线,2019年1月22日11:21:03更新-----------------------blog

好多人在下面评论,问最终的解决方案,多是我没有写清楚的缘故吧。token

解决方案我在文章开头就说了,就是去掉JSON.parse()这一层转换,由于你须要转换的数据原本就是一个json对象了,不须要在转换了。

github资源仓库:bug集合js1--Unexpected token o in JSON at position 1

个人CSDN博客地址:https://blog.csdn.net/wxl1555

若是您对个人博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同窗习进步。

邮箱:wuxiaolong802@163.com

相关文章
相关标签/搜索