要素#the-json
が空の場合、次のエラーが発生します。
Uncaught SyntaxError:予期しない入力の終了
次のコードの場合:
myJSON = JSON.parse($("#the-json").attr('value'));
スクリプト全体の動作が停止しないように、このエラーをどのように処理する必要がありますか?
要素#the-json
が空の場合、次のエラーが発生します。
Uncaught 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オブジェクトを意味します。