JSON.parse() 報錯和一些解決方法


js 報錯 Unexpected end of JSON input,Unexpected token u in JSON at position 0

JSON 通常用於與服務端交換數據。

在接收服務器數據時一般是字符串。

我們可以使用 JSON.parse() 方法將數據轉換為 JavaScript 對象。

在谷歌瀏覽器的 Console 調試台中嘗試一下這幾種參數的返回結果:

JSON.parse(null);
// null

JSON.parse("");
// VM6600:1 Uncaught SyntaxError: Unexpected end of JSON input

JSON.parse(undefined);
// VM6635:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0

可以發現 JSON.parse() 的參數必須符合 JSON字符串 的格式才可以被正確的轉換為對象,否則可能會引起報錯,從而對其它的代碼造成影響。

當我們不能確定服務端返回的數據類型時,這幾個例子就可以用上了:

// 判斷數據是否存在
var str = str && JSON.parse(str) || {};

// 判斷數據類型
var str = typeof str == "string" ? JSON.parse(str) : {};

// 通過 try catch 捕捉異常,防止代碼報錯
var c = null;
try {
    c = JSON.parse(str)
} catch (d) {}

 

同理 JSON.stringify

var g = "";
try {
    g = JSON.stringify(a)
} catch (u) {}

"object" == typeof a ? JSON.stringify(a) : a

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM