描述javascript报错“Uncaught SyntaxError: Unexpected end of JSON input”的原因和解决方法。
在非json格式的空数组上执行“JSON.parse”时发生。

错误内容
出现在以下对空数组执行“JSON.parse”的代码中。
const arr = []; console.log(JSON.parse(arr));
错误信息
Uncaught SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>)

原因
因为您对“无效的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>)
烽烟博客