【轉】JSON.parse() Unexpected token i in JSON at position 2 報錯問題


JSON.parse(): Unexpected token i in JSON at position 2 報錯問題

錯誤代碼:

    var res = "[{id:1,name:'liming'},{id:2,name:'xiaobai'}]"; var objRes = JSON.parse(res); console.log(objRes)

正確代碼:

  var res = '[{"id":1,"name":"liming"},{"id":2,"name":"xiaobai"}]'; var objRes = JSON.parse(res); console.log(objRes)

總結:

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

自我反省:

我在使用json.parse()確實碰到了這樣報錯的問題,我需要轉義存儲在本地的json,但是控制台一直出現這個報錯,當時也嘗試把key都加上了雙引號,但是還是報錯, 后來在后面加上了一個  JSON.parse(localStorage.getItem('xxx')) || [] 頁面就沒報錯了,猜想可能是因為剛加載頁面獲取不到本地存的json值,JSON.parse()轉不了才報錯了。后面我要好好研究下 JSON.parse() 和 JSON.stringify() 兩個函數,避免下次患同樣的錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM