JSON 校验完全指南:格式检查与错误修复
JSON 格式错误是开发中最常见的问题之一。一个多余的逗号、缺少的引号都可能导致解析失败。本文详细介绍 JSON 校验的方法和常见错误的修复技巧。
为什么需要 JSON 校验?
1. 防止解析失败
无效的 JSON 会导致 JSON.parse() 抛出异常,影响用户体验。
2. 保证数据一致性
校验确保数据格式符合预期,避免下游处理出错。
3. API 接口质量
对外提供的 API 如果返回无效 JSON,会严重影响开发者体验。
常见 JSON 错误类型
1. 缺少引号
// ❌ 错误:键名没有引号
{ name: "张三" }
// ✅ 正确
{ "name": "张三" }
2. 多余逗号
// ❌ 错误:最后一个元素后有逗号
{ "name": "张三", "age": 28, }
// ✅ 正确
{ "name": "张三", "age": 28 }
3. 单引号代替双引号
// ❌ 错误:JSON 只允许双引号
{ 'name': '张三' }
// ✅ 正确
{ "name": "张三" }
4. 注释
// ❌ 错误:JSON 不支持注释
{
"name": "张三" // 用户名
}
// ✅ 正确
{ "name": "张三" }
5. 未转义的特殊字符
// ❌ 错误:换行符未转义
{ "text": "第一行
第二行" }
// ✅ 正确
{ "text": "第一行\n第二行" }
JSON 校验方法
方法一:JavaScript
function isValidJSON(str) {
try {
JSON.parse(str);
return true;
} catch (e) {
return false;
}
}
方法二:Java
import com.fasterxml.jackson.databind.ObjectMapper;
public boolean isValidJSON(String json) {
try {
new ObjectMapper().readTree(json);
return true;
} catch (Exception e) {
return false;
}
}
方法三:在线工具
使用 jsjson.com JSON 校验工具 可以:
- 实时检测 JSON 语法错误
- 精确定位错误行号和列号
- 提供修复建议
- 本地处理,数据安全
JSON Schema 校验
除了语法校验,还可以使用 JSON Schema 进行语义校验:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer", "minimum": 0 }
},
"required": ["name"]
}
校验最佳实践
- 输入校验:接收外部 JSON 时必须校验
- 错误提示:提供清晰的错误信息,包括位置
- 防御性编程:永远不要信任用户输入的 JSON
- 自动化测试:在 CI/CD 中加入 JSON 校验步骤
总结
JSON 校验是开发中的基础技能。掌握常见错误类型和修复方法,可以大大减少调试时间。