JSON语法错误排查完全攻略 开发者必知的10个常见问题

JSON语法错误是开发者最常见的问题之一,本文整理了10种常见JSON错误类型及修复方法,配合jsjson.com在线JSON校验工具快速定位问题。

开发者工具 2026-06-14 10 分钟

JSON 是现代 Web 开发中最常见的数据交换格式,但哪怕少一个引号、多一个逗号,都会导致整个解析失败。本文总结了开发者最常遇到的 10 种 JSON 语法错误,配合 jsjson.com 在线 JSON 校验工具,帮你快速定位并修复问题。

📋 为什么 JSON 语法错误如此常见

JSON 规范虽然简单,但对格式要求极为严格。以下场景几乎每个开发者都经历过:

  • API 调试时:后端返回的 JSON 无法被前端解析,报 Unexpected token 错误
  • 配置文件编写package.jsontsconfig.json 等配置文件格式错误导致工具无法启动
  • 数据传输:手动拼接的 JSON 字符串在某些边界情况下出错

与 JavaScript 对象字面量不同,JSON 不允许注释、不支持尾逗号、键名必须用双引号。这些细微差异经常导致开发者踩坑。

🔧 10 种常见 JSON 语法错误详解

1. 使用单引号代替双引号

这是从 JavaScript 过渡到 JSON 时最容易犯的错误。

// ❌ 错误
{ 'name': 'jsjson', 'type': 'tool' }

// ✅ 正确
{ "name": "jsjson", "type": "tool" }

JSON 规范要求所有字符串(包括键名)必须使用双引号 "

2. 多余的尾逗号

JavaScript 允许尾逗号,但 JSON 严格禁止。

// ❌ 错误
{
  "name": "jsjson",
  "version": "1.0",
}

// ✅ 正确
{
  "name": "jsjson",
  "version": "1.0"
}

3. 键名未加引号

// ❌ 错误
{ name: "jsjson" }

// ✅ 正确
{ "name": "jsjson" }

4. 注释混入 JSON

JSON 不支持任何形式的注释。

// ❌ 错误 — 包含了注释
{
  // 用户名称
  "name": "jsjson",
  /* 工具类型 */
  "type": "tool"
}

// ✅ 正确
{
  "name": "jsjson",
  "type": "tool"
}

5. 字符串中未转义的特殊字符

// ❌ 错误 — 包含未转义的换行和引号
{ "desc": "这是一个"工具"网站" }

// ✅ 正确 — 使用转义字符
{ "desc": "这是一个\"工具\"网站" }

常见的需要转义的字符包括:\" \\ \/ \b \f \n \r \t,以及 Unicode 字符 \uXXXX

6. 数字格式不规范

// ❌ 错误
{ "value": 01, "price": .5, "amount": +10 }

// ✅ 正确
{ "value": 1, "price": 0.5, "amount": 10 }

JSON 中数字不能以 0 开头(除了 0 本身和小数)、不能以 . 开头、不能带正号 +

7. 括号不匹配

嵌套层级深的 JSON 容易出现括号不匹配的问题。

// ❌ 错误 — 少了一个 }
{
  "user": {
    "name": "jsjson",
    "settings": {
      "theme": "dark"
    }
  "status": "active"
}

// ✅ 正确
{
  "user": {
    "name": "jsjson",
    "settings": {
      "theme": "dark"
    }
  },
  "status": "active"
}

8. 使用了非法数据类型

JSON 只支持 stringnumberobjectarraybooleantrue/false)和 null

// ❌ 错误
{ "date": undefined, "pattern": /regex/, "value": NaN }

// ✅ 正确 — 使用 JSON 兼容的值
{ "date": null, "pattern": "regex", "value": null }

9. 数组或对象中多余的逗号或缺少逗号

// ❌ 错误 — 缺少逗号
{ "a": 1 "b": 2 }

// ❌ 错误 — 多余逗号
[1, 2, 3,]

// ✅ 正确
{ "a": 1, "b": 2 }
[1, 2, 3]

10. 编码问题导致的不可见字符

从网页复制粘贴的 JSON 可能包含零宽空格(\u200B)、BOM 标记等不可见字符,导致解析失败。这类错误肉眼很难发现,需要借助工具排查。

💡 使用 jsjson.com 在线校验 JSON

手动排查 JSON 错误费时费力,使用 jsjson.com JSON 校验工具 可以一键检测所有问题:

  1. 粘贴 JSON 内容:将待校验的 JSON 文本粘贴到输入框
  2. 点击校验按钮:工具会自动检测语法错误
  3. 查看错误详情:精确定位到错误所在的行号和列号,显示具体错误原因
  4. 快速修复:根据提示修正后再次校验,直到通过

对于格式混乱的 JSON,还可以先用 JSON 格式化工具 美化后再校验,这样更容易发现结构问题。

🔗 实用技巧:JSON 调试工作流

从 API 响应中提取 JSON

当 API 返回的 JSON 包含在 HTTP 响应体中,可能前后带有额外内容。先确认响应头 Content-Typeapplication/json,然后提取纯 JSON 部分进行校验。

批量校验 JSON 文件

如果你有多个 JSON 配置文件需要校验,可以逐个粘贴到 JSON 校验工具 中检查,也可以使用 JSON 格式化工具的压缩/美化功能间接验证格式正确性。

JSON 与 JavaScript 对象互转

将 JavaScript 对象转为 JSON 时,使用 JSON.stringify(obj, null, 2) 生成格式化的 JSON 字符串,再粘贴到校验工具中确认无误。反之使用 JSON.parse() 解析时,务必先校验格式。

❓ 常见问题 FAQ

JSON 校验和 JSON 格式化有什么区别?

JSON 校验专注于检测语法错误,告诉你 JSON 是否合法以及错误位置。JSON 格式化则是在 JSON 合法的前提下美化排版。建议先校验确认无误,再格式化美化。两个工具配合使用效果最佳。

如何校验超大 JSON 文件?

jsjson.com 的 JSON 校验工具在浏览器本地运行,不会上传数据到服务器,保护你的数据隐私。对于超大文件,建议先用 JSON 压缩工具 去除多余空格,减少体积后再校验。

JSON5 和标准 JSON 有什么区别?

JSON5 是 JSON 的扩展,支持注释、尾逗号、单引号等特性,但不是标准 JSON。如果你需要与标准系统交互,务必使用标准 JSON 格式。

为什么 JavaScript 中 {}[] 都是合法的,但 JSON 中有时报错?

在 JavaScript 中,{} 可以是空对象,也可以是空代码块。[] 是空数组。在 JSON 中,{}[] 都是合法的。报错通常是因为 JSON 外层结构不对,比如直接写了 {key: value} 而不是 {"key": "value"}

🔗 相关工具推荐

📚 相关文章