歡迎訪問個人我的博客: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