[英]JSON.parse error protection
我的腳本從cookie獲取了一些字符串化的json數據。
var cookie = $.cookie('someKey');
if (typeof(cookie) == 'string') {
var fromCookie = JSON.parse(cookie);
}
數據通過Cookie來自用戶,因此我想確保它是json。 如果不是json,則腳本會因錯誤而停止
SyntaxError: JSON.parse: end of data after property value in object
var fromCookie = JSON.parse(cookie);
如何檢查數據,並獲得假以fromCokie而不是讓錯誤的
您想要一個try catch
塊:
var fromCookie;
try {
fromCookie = JSON.parse(cookie);
} catch (e) {
fromCookie = false;
}
如果要解析的字符串不是有效的JSON,則拋出SyntaxError異常。
根據MDN 。
您應該將其包圍在try / catch塊中,以捕獲異常:
var cookie = $.cookie('someKey');
if (typeof(cookie) == 'string') {
var fromCookie = false;
try {
fromCookie = JSON.parse(cookie);
} catch (e) {
fromCookie = false;
}
}
您實際上並不需要測試cookie是否為字符串,但是如果您還有其他要執行的代碼,我會保留它。
除非您想編寫完整的JSON解析器,否則建議使用try-catch
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.