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

迎接接见我的个人博客:http://www.xiaolongwu.cn

写在前面的话

这个问题在之前做项目时碰到过一次,当时根据网上的做法,去掉JSON.parse()这一层转换后就没有这个报错了,数据也能一般运用,就没多想,也没穷究是什么缘由。

但是此次又碰到了,所以此次必须要弄邃晓缘由。

先看看它的作用

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对象,你再转换就会报错;

为何会有如许的毛病

由于把Object作为参数传到JSON.parse()里时,首先会默应用toString()要领转为string,效果为”[object Object]”。

JSON.parse()将第一个字符'[‘理解为数组的最先,第二字符’o’不知道怎样处置惩罚;所以就抛出了上面的毛病信息 Unexpected token o in JSON at position 1。

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

很多人在下面批评,问终究的解决方案,多是我没有写清晰的原因吧。

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

github资本堆栈:bug鸠合js1–Unexpected token o in JSON at position 1

我的CSDN博客地址:https://blog.csdn.net/wxl1555

假如您对我的博客内容有迷惑或质疑的处所,请在下方批评区留言,或邮件给我,配合进修提高。

邮箱:wuxiaolong802@163.com

    原文作者:LeonWuV
    原文地址: https://segmentfault.com/a/1190000017978454
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞