如果元素#the-json
为空,则会导致此错误:
未捕获的 SyntaxError:输入意外结束
对于以下代码:
myJSON = JSON.parse($("#the-json").attr('value'));
应该如何处理这个错误,这样它就不会停止整个脚本的工作?
如果元素#the-json
为空,则会导致此错误:
未捕获的 SyntaxError:输入意外结束
对于以下代码:
myJSON = JSON.parse($("#the-json").attr('value'));
应该如何处理这个错误,这样它就不会停止整个脚本的工作?
使用 try-catch 语句:
try {
myJSON = JSON.parse($("#the-json").attr('value'));
} catch (e) {
// handle error
}
或者在做某事之前检查:
var myJSON = JSON.parse('{}'); // default value
if ($("#the-json").attr('value')) {
myJSON = JSON.parse($("#the-json").attr('value'));
}
而不是在错误发生时捕捉错误 -首先防止错误发生! 只需测试 value 属性,如果它为空 - 明确指定它是。然后你的 JSON 解析器不会抱怨——它只会创建一个空对象。
您可以简单地测试空内容并提供一个空对象 -
var data = $("#the-json").attr('value') == ''? '{}': $("#the-json").attr('value');
myJSON = JSON.parse(data);
if ($.isEmptyObject(myJSON)){
// there was no value
}
{}
语法意味着一个空的 JavaScript 对象。