Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>)
阿新 • • 發佈:2018-11-08
這個問題在之前做專案時碰到過一次,當時按照網上的做法,去掉JSON.parse()這一層轉換後就沒有這個報錯了,資料也能正常使用,就沒多想,也沒深究是什麼原因。可是這次又碰到了,所以這次我必須要弄明白原因。
先看看它的作用
JSON.parse()用於從一個字串中解析出json物件,如
var str = '{"name":"LeonWu","age":"18"}'
JSON.parse(str);
//結果為一個Object
// age: "18";
// name: "LeonWu";
1
2
3
4
5
6
7
JSON.stringify()用於從一個物件解析出字串,如
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物件,你再轉換就會報錯;
為什麼會有這樣的錯誤:
因為把Object作為引數傳到JSON.parse()裡時,它會默把Object轉為string,
就會先呼叫原型上的toString()方法;結果為”[object Object]”,JSON.parse將第一個字元’[‘理解為陣列的開始,第二字元’o’不知道怎麼處理;所以就丟擲了上面的錯誤資訊 Unexpected token o in JSON at position 1。
---------------------
作者:LeonWuV
來源:CSDN
原文:https://blog.csdn.net/wxl1555/article/details/79184076
版權宣告:本文為博主原創文章,轉載請附上博文連結!