JSON 校验到底检查什么?
标准 JSON 只接受双引号字符串和双引号键名,数组与对象必须正确闭合,最后一个元素后不能保留逗号。校验工具使用浏览器原生解析器验证这些规则,因此通过后可以安全地继续格式化、转换或作为请求体使用。
它校验的是语法,不判断字段是否符合你的业务接口。比如接口要求 id 是数字,而你传了字符串,JSON 仍然可能是合法的。
4 个最常见的 JSON 报错
末尾多了逗号
{
"name": "张三",
}对象或数组的最后一项后不能再写逗号。删除最后的逗号后再校验。
用了 JavaScript 单引号
{
'name': '张三'
}JavaScript 对象允许单引号,但标准 JSON 不允许。键名和字符串都要改成双引号。
字符串里的双引号未转义
{
"message": "他说 "你好""
}字符串内部的双引号要写成 \",否则解析器会把字符串提前结束。
少了一个右括号
{
"items": [1, 2, 3]
看到 Unexpected end 一类报错时,优先从最后几行检查对象和数组是否闭合。
校验失败后怎么处理?
- 先看右侧报错中的字符位置或行列提示,检查该位置前后的引号、逗号和括号。
- 如果是末尾逗号或简单单引号,可点击“尝试修复”。
- 修复成功后再次校验,再进行格式化、转换或提交请求。
“合法 JSON”不等于“符合接口”。校验通过后,仍应按接口文档确认字段名、类型、必填项和枚举值。
常见问题
- JSON 校验和格式化有什么区别?
- 校验只判断语法是否合法并显示诊断。格式化会在校验成功后重新排版内容,让层级更容易阅读。
- 为什么有时没有精确的行号?
- 错误信息来自当前浏览器的原生解析器。部分错误只能定位到字符附近,尤其是文件末尾缺少括号或引号时。
- JSON5、注释和未加引号键名能通过吗?
- 不能。此页面校验的是标准 JSON。JSON5 的注释、尾随逗号和未加引号键名需要先转换成标准 JSON。