小程式json.parse錯誤
阿新 • • 發佈:2018-12-02
錯誤詳情
今天檢視上線的微信小程式後臺,發現了一個這樣的錯誤:
Unexpected token in JSON at position 52;
at pages/send/send onShow function;
at api request success callback function
於是我開啟除錯工具檢視原始碼並且除錯:
VM792:1 thirdScriptError Unexpected token in JSON at position 52;at pages/send/send onShow function; at api request success callback function SyntaxError: Unexpected token in JSON at position 52 at JSON.parse (<anonymous>) at success (http://127.0.0.1:60162/appservice/pages/send/send.js:130:35) at http://127.0.0.1:60162/appservice/utils/bmob.js:2293:37 at wrappedResolvedCallback (http://127.0.0.1:60162/appservice/utils/bmob.js:2219:48) at http://127.0.0.1:60162/appservice/utils/bmob.js:2171:34 at Object._.each._.forEach [as _arrayEach] (http://127.0.0.1:60162/appservice/utils/underscore.js:161:17) at Bmob.Promise.resolve (http://127.0.0.1:60162/appservice/utils/bmob.js:2170:18) at wrappedResolvedCallback (http://127.0.0.1:60162/appservice/utils/bmob.js:2228:37) at http://127.0.0.1:60162/appservice/utils/bmob.js:2171:34 at Object._.each._.forEach [as _arrayEach] (http://127.0.0.1:60162/appservice/utils/underscore.js:161:17)
果不其然,小程式已然上線,這個錯誤一定不能忍
除錯過程
通過錯誤資訊定位到出錯的程式碼
通過上面的報錯資訊:
at success (http://127.0.0.1:60162/appservice/pages/send/send.js:130:35)
定位到出錯的程式碼是在130行:
var jsonB = JSON.parse(jsonA);
上網瀏覽查詢相關資料
網上的說法不一而足,實在不知道該聽信哪家之言
不過都集中在json檔案不能有註釋
、json字串url有誤
、json字串有特殊字元
定位原因
排除了幾種錯誤後還沒有解決問題,有點心灰意冷,
嘗試著輸出json字串中的每一個字元
51 "。"
52 "
"
53 "2"
等等,換行符確是是個特殊字元(ps,在js裡面\r
是回車符,\n
是換行符,)
(在小程式中,我這個jsonA是包含使用者的鍵盤輸入資訊的)
解決辦法
jsonA = jsonA.replace('\n','')