我的脚本从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);
如何检查数据并 false fromCokie 而非收到错误
答案 0 :(得分:6)
您需要try catch
块:
var fromCookie;
try {
fromCookie = JSON.parse(cookie);
} catch (e) {
fromCookie = false;
}
答案 1 :(得分:2)
如果要解析的字符串无效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是否是一个字符串,但是如果你还有一些其他代码要执行的话,我就离开了。
答案 2 :(得分:1)
除非您想编写完整的JSON解析器,否则我建议使用try-catch
。