javascript エラー「Uncaught SyntaxError: Unexpected end of JSON input」の解決方法
- 作成日 2022.12.28
- javascript
- javascript
javascriptで、エラー「Uncaught SyntaxError: Unexpected end of JSON input」が発生した場合の原因と解決方法を記述してます。「JSON.parse」をjson形式でない空の配列に実行した際に発生します。
環境
- OS windows11 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 108.0.5359.125
エラー内容
以下の、空の配列に対して「JSON.parse」を実行したコードにて発生。
const arr = [];
console.log(JSON.parse(arr));
エラーメッセージ
Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
画像
firefox107の場合でも同じエラーが発生します。
Uncaught SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
画像
safari15.5では、以下のエラーとなります。
SyntaxError: JSON Parse error: Unexpected EOF
画像
原因
「無効な JSON」に対して「JSON.parse」を使用しているため
解決方法
「try-catch」を使用して、エラーハンドリングする
const arr = [];
try {
JSON.parse(arr);
} catch (err) {
console.log(err);
}
console.log('finish');
実行結果
または「JSON.stringify()」でJSONデータに変換してから使用します。
const arr = [];
console.log( JSON.parse(JSON.stringify(arr)) );
// []
ちなみに、空の配列ではなく、要素のある配列の場合は以下のエラーが発生します。
const arr = ["a","b","c"];
console.log(JSON.parse(arr));
// Uncaught SyntaxError: Unexpected token 'a', "a,b,c" is not valid JSON at JSON.parse (<anonymous>)
const arr2 = [1,2,3];
console.log(JSON.parse(arr2));
// Uncaught SyntaxError: Unexpected non-whitespace character after JSON at position 1 at JSON.parse (<anonymous>)
-
前の記事
gmail 未読メッセージを全選択するショートカットキー 2022.12.27
-
次の記事
Google ドキュメント 書式をクリアするショートカットキー 2022.12.28
コメントを書く