避坑13_Unexpected token o in JSON at position 1 at JSON.parse
一、问题
后端mock数据: 在使用axios请求数据时
mounted() { axios.get(this.baseUrl).then((res) => { for (var i = 0; i < 10; i++) { var myData = JSON.parse(res.data); this.nameArr.push(myData.info[i].name) console.log(this.nameArr[i]); } }); },
控制台报错:Unexpected token o in JSON at position 1 at JSON.parse
二、原因及解决方法
原因:
var myData = JSON.parse(res.data);
该条语句中的res.data是一个对象即图1中的
{ "info":[ { "name": "@cname", "age|1-80": 20 }, { "name": "@cname", "age|1-80": 20 }, { "name": "@cname", "age|1-80": 20 } ] }
当使用JSON.parse时,其实解析的是JSON.parse([object]),因此会报错
解决 将 var myData = JSON.parse(res.data); 改为: var myData = res.data
或使用深拷贝: var myData = JSON.parse(JSON.stringify(res.data)); 值得注意的是深拷贝的特性,具体移步
上一篇:
IDEA上Java项目控制台中文乱码