標籤:bsp splay 強迫症 哈哈 問題解決 思路 auto 符號 http
今天跟大家分享我前兩天遇見的一個BUG,說出來很難受,因為這個BUG花了我一個多小時去找原因,後來莫名其妙的故障消失了,強迫症犯了的我,居然花了2個多小時去故意再製造這個BUG,只想弄明白WHY???結果大家應該都猜到了,哈哈,沒找到!!!沒錯,居然沒找到!!!不過類似於Uncaught SyntaxError: Unexpected token ‘ in JSON at position 2的錯誤。。。
關於JOSN的方法,大家通過百度應該都深刻理解它的用法:parse用於從一個字串中解析出json對象;stringify()用於從一個對象解析出字串;
前兩天我在做一個本機存放區的時候,通過localStorage封裝一個函數的時候,將對象通過JOSN.stringify()儲存在本地,跳轉頁面,再通過JOSN.parse()
將json字串轉化為對象時,BUG出現了!!!部分代碼如下:
備忘:轉化為JSON字串的儲存
備忘:JSON字串轉化對象
後來花了一個多小時找不到問題所在,chrome一直報錯,Uncaught SyntaxError: Unexpected token o in JSON at position 1;終於忍不了了,開啟度娘,直接把問題複製黏貼,真是什麼樣的解決方案都有,頓時。。。
記得開啟的第一個解決方案,是國外的程式員一個小夥子,說了半天,我算明白,他意思說可能JOSN.parse()括弧裡的內容可能已經是一個對象了,沒有再轉換的必要了,可我開啟我的localStorage明明還是字串啊(原BUG圖已經找不到,),死馬當活馬醫,我還是試了一試,絕望!!!
後來試了試網上另一種方法,相信大家也看過,但是有些並沒有解決問題!!!不過思路是對的,
備忘:JOSN方法對符號的嚴格定義
但是大家能發現的是,其實它的報錯是position 2,而並不是我的1;但是它提醒了我,JSON將對象轉化為字串儲存在本地是有嚴格要求的,比如說是符號,或是非法字串之類的,都可能影響後面JOSN.parse的解析。。。
此刻已經壓抑不住自己蠢蠢欲動的心了,直接localStorage.clear();清除了之前的本機存放區。。。哈哈,果然問題解決,沒有再報錯。。。沒開心一會突然忘了重要的一件事,臥槽BUG沒有記錄!!!所以才有了後來兩個小時的找”BUG“。。。
好了,謝謝你這麼帥,還能看完我的分享。。。送你一朵?
關於Uncaught SyntaxError: Unexpected token o in JSON at position 1,chrome持續報錯的相關解析