Unexpected token o in JSON at position 1 報錯原因

寫在前面的話

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

可是這次又碰到了,所以這次必須要弄明白原因。

 JSON更多知識:https://blog.csdn.net/muzidigbig/article/details/83305325

報錯的原因

因爲你要轉換的數據本來就是object,JSON.parse()這個方法是把一個字符串解析出json對象,你再轉換就會報錯;


爲什麼會有這樣的錯誤?

因爲把Object作爲參數傳到JSON.parse()裏時,首先會默利用toString()方法轉爲string,結果爲"[object Object]"。

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

在使用JSON.parse的時候,返回來的數據一定是嚴格的json格式,key值一定要用 雙引號 包起來,否則瀏覽器就會拋出異常。
另外,對於不標準的json字符串,使用eval()雖然可以正常解析,但是從安全的角度來講,一定要謹慎使用eval方法。規範json格式。

 

 

 

 

發佈了246 篇原創文章 · 獲贊 260 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章