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