Uncaught SyntaxError: Unexpected token o in JSON at position 1


在js調試時,會遇到Uncaught SyntaxError: Unexpected token o in JSON at position 1問題

obj = JSON.parse(str);

此錯誤一般是由JSON.parse()引起,代碼如上,原因一般為str實際是一個對象,而不是字符串

 

解決辦法,判斷str為string時再JSON.parse()轉化對象

obj = typeof(str) == "string" ? JSON.parse(str):str;

 

遇到的實際場景

1.在使用objTarget=JSON.parse(JSON.stringify(obj))做對象深拷貝時,obj中有一個屬性arr為字符串數組,這些字符串為json格式字符串,能被轉化為對象

經過深拷貝后,將objTarget中對應的屬性arr變為了object數組,后續使用過程中,將此屬性arr仍當做字符串數組,對數組元素使用JSON.parse就產生了此錯誤

 


免責聲明!

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



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