2021-06-30 JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因

JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因

比如说:后端接口或者某个第三方返回json对象,连续返回两次会导致这个问题出现,已经解析了一次,二次又出现,就报Unexpected token o in JSON at position 1

解决方案:

result 是接口或者某个第三方返回的数据格式

if (typeof result ==='string') {}

详情如下描述:

JSON.parse()用于从一个字符串中解析出json对象,如

var str = '{"name":"Wu","age":"20"}'

JSON.parse(str);

//结果为一个Object

// age: "20";

// name: "Wu";

JSON.stringify()用于从一个对象解析出字符串,如

var a = {age:1,name:"Wu"};

JSON.stringify(a);

//结果为 "{"age":1,"name":"Wu"}"

报错的原因:

因为你要转换的数据本来就是object,这个方法是把一个字符串解析出json对象,你再转换就会报错;

为什么会有这样的错误:

因为把Object作为参数传到JSON.parse()里时,它会默把Object转为string,

就会先调用原型上的toString()方法;结果为”[object Object]”,JSON.parse将第一个字符’[‘理解为数组的开始,第二字符’o’不知道怎么处理;所以就抛出了上面的错误信息 Unexpected token o in JSON at position 1

你可能感兴趣的:(2021-06-30 JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因)