Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理断开JSON的错误_Javascript_Jquery_Json_Exception - Fatal编程技术网

Javascript 处理断开JSON的错误

Javascript 处理断开JSON的错误,javascript,jquery,json,exception,Javascript,Jquery,Json,Exception,如果元素#json为空,则会导致此错误: 未捕获的语法错误:输入意外结束 对于以下代码: myJSON = JSON.parse($("#the-json").attr('value')); 如何处理此错误,使其不会停止整个脚本的工作?使用try-catch语句: try { myJSON = JSON.parse($("#the-json").attr('value')); } catch (e) { // handle error } 或在做某事之前检查: var myJSON

如果元素
#json
为空,则会导致此错误:

未捕获的语法错误:输入意外结束

对于以下代码:

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对象。

将所有JavaScript包装在try-catch中是一种好的做法吗?@ami-不是所有的代码。。。你可以预测可能出现的问题。