蝴蝶刀刀
2018-09-05 09:09:59
不能描述的很清楚,大概是:其中 airport 是字符串類型的 json 文件,直接控制臺(tái)打印出來(lái)是這樣的:轉(zhuǎn)為 obj:airport = JSON.parse(airport)第一次進(jìn)頁(yè)面沒(méi)問(wèn)題,再返回上一頁(yè),再進(jìn)來(lái)就報(bào)錯(cuò)了,除非手動(dòng)強(qiáng)制刷新才出來(lái),獲取的數(shù)據(jù)確實(shí)打印出來(lái)了,就在 JSON.parse 這里報(bào)錯(cuò),報(bào)錯(cuò)如下:load fail: Unexpected token o in JSON at position 1百度了幾個(gè)看的不懂:JSON.Parse,Uncaught SyntaxError: Unexpected token o duplicateJSON.parse Uncaught SyntaxError: Unexpected token o duplicate其中我用了 backbone 的路由跳轉(zhuǎn)的,如果正常跳轉(zhuǎn)可能沒(méi)有這個(gè)問(wèn)題...感謝各位花時(shí)間幫我解答,找到問(wèn)題所在和解決方法了,就是我采納的那位大兄弟: if (typeof airport === 'string') {
airport = JSON.parse(airport)
}謝謝~
1 回答

料青山看我應(yīng)如是
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
用backbone路由跳轉(zhuǎn)--所以你是單頁(yè)應(yīng)用?返回上一頁(yè)時(shí)沒(méi)有引起刷新?
如果是這樣的話,你第一次執(zhí)行airport = JSON.parse(airport)
時(shí)把a(bǔ)irport變成了object類型,返回上一頁(yè)再進(jìn)沒(méi)有頁(yè)面刷新,javascript上下文被維持著,此時(shí)airport就是object類型。
Object在作為JSON.parse的參數(shù)時(shí)會(huì)先轉(zhuǎn)為string,默認(rèn)toString實(shí)現(xiàn)會(huì)將Object轉(zhuǎn)為"[object Object]",JSON.parse將第一個(gè)字符'['理解為數(shù)組開(kāi)始,第二字符'o'就不知道怎么處理了。
添加回答
舉報(bào)
0/150
提交
取消