[英]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.