Unexpected token o in JSON at position 1 報錯緣由

寫在前面的話
這個問題在以前作項目時碰到過一次,當時按照網上的作法,去掉JSON.parse()這一層轉換後就沒有這個報錯了,數據也能正常使用,就沒多想,也沒深究是什麼緣由。git

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

先看看它的做用
JSON.parse()用於從一個字符串中解析出json對象,如json

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

JSON.parse(str);學習

//結果爲一個Object
// age: "18";
// name: "LeonWu";
1
2
3
4
5
6
7
JSON.stringify()用於從一個對象解析出字符串,如.net

var a = {a:1,b:2,c:"LeonWu"};

JSON.stringify(a);

//結果爲 "{"a":1,"b":2,"c":"LeonWu"}"

1
2
3
4
5
6
背後的緣由
報錯的緣由
由於你要轉換的數據原本就是object,JSON.parse()這個方法是把一個字符串解析出json對象,你再轉換就會報錯;對象

爲何會有這樣的錯誤
由於把Object做爲參數傳到JSON.parse()裏時,首先會默利用toString()方法轉爲string,結果爲"[object Object]"。blog

JSON.parse()將第一個字符’['理解爲數組的開始,第二字符’o’不知道怎麼處理;因此就拋出了上面的錯誤信息 Unexpected token o in JSON at position 1。token

--------------------- 分割線,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

若是您對個人博客內容有疑惑或質疑的地方,請在下方評論區留言,或郵件給我,共同窗習進步。

相關文章
相關標籤/搜索