← 返回博客

5个常见的JSON语法错误及其修复方法

通过这份关于开发者遇到的5个最常见错误的权威指南掌握JSON语法。通过实际示例学习识别、修复和预防JSON验证问题。

Big JSON Team12 分钟阅读beginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

12 分钟阅读

# 5个常见的JSON语法错误及其修复方法

JSON在现代Web开发中无处不在——从API响应到配置文件。尽管语法简单,开发者仍不断遇到令人沮丧的JSON错误,这些错误会破坏应用程序。

本指南涵盖了5个最常见的JSON语法错误,如何立即识别它们,以及如何永久修复它们。

---

为什么JSON错误如此常见

JSON的严格语法要求意味着即使一个错位的字符也可能使整个文档无效。与JavaScript不同,JSON:

  • ✅ 要求字符串使用双引号(单引号无效)
  • ✅ 禁止尾随逗号
  • ✅ 要求键和值的精确格式
  • ✅ 完全不允许注释

让我们深入了解最容易困扰开发者的错误。

---

错误#1: 尾随逗号(沉默的杀手)

问题

尾随逗号——数组或对象中最后一项后的额外逗号——在JavaScript中完全有效,但在JSON中完全禁止

❌ 无效JSON

{

"username": "alice123",

"email": "alice@example.com",

"active": true,

}

✅ 有效JSON

{

"username": "alice123",

"email": "alice@example.com",

"active": true

}

错误消息

Unexpected token } in JSON at position 78

SyntaxError: Trailing comma in JSON

如何修复

手动修复:
  • 扫描}]前的逗号
  • 删除任何尾随逗号
  • 使用JSON检查器验证
  • 预防提示: 使用BigJSON等JSON格式化工具,它会自动检测并高亮显示尾随逗号。

    ---

    错误#2: 单引号而非双引号

    问题

    JavaScript允许字符串使用单引号和双引号,但JSON只接受双引号(")。

    ❌ 无效JSON

    {
    

    '名称': '张三',

    '年龄': 30

    }

    ✅ 有效JSON

    {
    

    "名称": "张三",

    "年龄": 30

    }

    错误消息

    Unexpected token ' in JSON at position 2
    

    SyntaxError: Expected property name or '}' in JSON

    ---

    错误#3: 未加引号的键

    问题

    在JavaScript中,如果对象键是有效标识符,可以不加引号。JSON要求所有键都必须是字符串,用双引号包裹。

    ❌ 无效JSON

    {
    

    name: "Alice",

    age: 28,

    active: true

    }

    ✅ 有效JSON

    {
    

    "name": "Alice",

    "age": 28,

    "active": true

    }

    ---

    错误#4: 无效的转义序列

    问题

    JSON支持有限的转义序列。使用无效序列或忘记转义特殊字符会导致解析错误。

    ❌ 无效JSON

    {
    

    "path": "C:\\Users\\Alice\\Documents",

    "message": "第1行

    第2行"

    }

    ✅ 有效JSON

    {
    

    "path": "C:\\\\Users\\\\Alice\\\\Documents",

    "message": "第1行\\n第2行"

    }

    JSON中的有效转义序列

    | 字符 | 转义序列 | 描述 |

    |------|---------|------|

    | " | \\" | 双引号 |

    | \\ | \\\\\\ | 反斜杠 |

    | / | \\/ | 正斜杠 |

    | 换行 | \\n | 换行符 |

    | 制表 | \\t | 水平制表符 |

    ---

    错误#5: JSON中的注释(JSON ≠ JavaScript!)

    问题

    开发者经常在JSON文件中添加注释用于文档说明,但JSON不支持任何形式的注释

    ❌ 无效JSON

    {
    

    // 用户配置

    "username": "admin",

    "role": "superuser",

    / 这是临时的 /

    "debugMode": true

    }

    ✅ 有效JSON

    {
    

    "username": "admin",

    "role": "superuser",

    "debugMode": true

    }

    解决方法

    选项1: 使用注释字段
    {
    

    "_comment": "用户配置",

    "username": "admin",

    "role": "superuser"

    }

    ---

    预防JSON错误的工具

    1. 在线验证器

    BigJSON验证器 - 带有有用错误消息的即时验证。

    2. IDE扩展

    VS Code:
    • 内置JSON验证
    • 安装"Error Lens"以获取内联错误消息

    3. 命令行工具

    # Node.js内置验证器
    

    node -e "JSON.parse(require('fs').readFileSync('file.json'))"

    # Python验证器

    python -m json.tool file.json

    ---

    快速参考检查清单

    在提交或部署JSON文件之前,检查:

    • [ ] 最后一项后没有尾随逗号
    • [ ] 所有字符串使用双引号(")
    • [ ] 所有对象键都加了引号
    • [ ] 特殊字符正确转义
    • [ ] 任何地方都没有注释
    • [ ] 括号和大括号正确嵌套
    • [ ] 有效的数据类型(string, number, boolean, null, object, array)

    ---

    结论

    5个最常见的JSON语法错误是:

  • 尾随逗号 - 删除}]前的逗号
  • 单引号 - 始终使用双引号(")
  • 未加引号的键 - 为所有对象键加引号
  • 无效转义 - 使用正确的转义序列
  • 注释 - 删除所有注释
  • 记住: JSON不是JavaScript!其严格的语法不允许灵活性。

    下一步

  • 验证你的JSON: 使用BigJSON验证器
  • 自动格式化: 使用BigJSON格式化器
  • 了解更多: 阅读我们的完整JSON指南
  • ---

    相关资源

    ---

    最后更新: 2026年2月15日
    Share:

    相关文章

    Read in English