2021-06-30 JSON.parse使用 之 Unexpected token o in JSON at position 1 報(bào)錯(cuò)原因

JSON.parse使用 之 Unexpected token o in JSON at position 1 報(bào)錯(cuò)原因

比如說:后端接口或者某個(gè)第三方返回json對(duì)象,連續(xù)返回兩次會(huì)導(dǎo)致這個(gè)問題出現(xiàn),已經(jīng)解析了一次,二次又出現(xiàn),就報(bào)Unexpected token o in JSON at position 1

解決方案:

result 是接口或者某個(gè)第三方返回的數(shù)據(jù)格式

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

詳情如下描述:

JSON.parse()用于從一個(gè)字符串中解析出json對(duì)象,如

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

JSON.parse(str);

//結(jié)果為一個(gè)Object

// age: "20";

// name: "Wu";

JSON.stringify()用于從一個(gè)對(duì)象解析出字符串,如

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

JSON.stringify(a);

//結(jié)果為 "{"age":1,"name":"Wu"}"

報(bào)錯(cuò)的原因:

因?yàn)槟阋D(zhuǎn)換的數(shù)據(jù)本來就是object,這個(gè)方法是把一個(gè)字符串解析出json對(duì)象,你再轉(zhuǎn)換就會(huì)報(bào)錯(cuò);

為什么會(huì)有這樣的錯(cuò)誤:

因?yàn)榘袿bject作為參數(shù)傳到JSON.parse()里時(shí),它會(huì)默把Object轉(zhuǎn)為string,

就會(huì)先調(diào)用原型上的toString()方法;結(jié)果為”[object Object]”,JSON.parse將第一個(gè)字符’[‘理解為數(shù)組的開始,第二字符’o’不知道怎么處理;所以就拋出了上面的錯(cuò)誤信息 Unexpected token o in JSON at position 1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容