📌  相关文章
📜  错误在“...”附近解析时 JSON 输入意外结束 - Javascript (1)

📅  最后修改于: 2023-12-03 15:42:08.573000             🧑  作者: Mango

错误在“...”附近解析时 JSON 输入意外结束 - Javascript

该错误通常出现在尝试解析 JSON 字符串时,表示输入字符串不完整或格式不正确。

常见原因
  • JSON 格式不完整,缺少括号、引号等等;
  • JSON 中某些键值缺失或格式不正确;
  • JSON 中存在数据类型不支持的值,如 NaN、Infinity;
  • JSON 中存在多余的逗号或冒号;
  • JSON 字符串中存在非 ASCII 字符;
  • 在尝试解析 JSON 字符串之前忘记先将其转换为对象或数组。
解决方法
  • 首先检查 JSON 字符串是否完整、格式是否正确;
  • 在 JSON 字符串解析之前,可以先使用 JSON 校验工具进行验证;
  • 如果 JSON 中存在 NaN 或 Infinity 等数据类型不支持的值,可以先将其转成字符串;
  • 如果 JSON 中存在非 ASCII 字符,可以使用 encodeURI()encodeURIComponent() 进行编码;
  • 如果忘记将 JSON 字符串转换为对象或数组,在解析之前使用 JSON.parse() 进行转换。
代码示例
const jsonString = '{"name": "John", "age": 30, }';

try {
  const data = JSON.parse(jsonString);
  console.log(data);
} catch (error) {
  console.log(error.message);
  // 错误在“...”附近解析时 JSON 输入意外结束
}

在上面的示例中,JSON 字符串中存在一个多余的逗号,导致解析失败。我们可以将逗号去掉或在解析前使用 JSON 校验工具检查格式,解决该错误。