5个常见的JSON语法错误及其修复方法
通过这份关于开发者遇到的5个最常见错误的权威指南掌握JSON语法。通过实际示例学习识别、修复和预防JSON验证问题。
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
# 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
如何修复
手动修复:}或]前的逗号---
错误#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语法错误是:
}和]前的逗号")下一步
---
相关资源
---
最后更新: 2026年2月15日