JSON 校验是检查一段文本是否符合 JSON 语法(RFC 8259),并在出错时指出位置和原因;更进一步的“结构校验”用 JSON Schema 检查字段是否齐全、类型是否正确。下面重点说明逐字符规则说明。
JSON校验的处理规则
校验对象:文本 → 尝试解析 → 合法 / 报错位置。
语法校验就是尝试解析:解析器读到不符合语法的字符就停下并报告位置。JSON Schema 校验则在解析成功后,按 Schema 中的 type、required、properties、pattern 等规则逐项检查数据。
示例
输入:
{"a":"x
y"}
校验结果:不合法:Invalid control character at(第 1 行第 8 列)
说明:Python json 模块的报错。
规则说明
- 键必须是双引号包裹的字符串
- 字符串只能用双引号,不能用单引号
- 值只能是字符串、数字、true、false、null、对象、数组
- 最后一个元素后面不能有逗号
- 不支持注释、NaN、Infinity、undefined
- 数字不能有前导 0(如 01),不能用十六进制
怎么选
只需确认能否解析时用语法校验;对外提供接口、导入第三方数据时用 JSON Schema 做结构校验,并把校验放在入口处。
JSON 与 XML:JSON 更简洁、解析更快,是 Web API 的主流;XML 支持属性、命名空间和 Schema 校验,常见于老系统和文档格式。JSON 与 YAML:YAML 可读性更好、支持注释,常用于配置文件;YAML 1.2 是 JSON 的超集。
本站的JSON格式化工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【JSON 和 JavaScript 对象一样吗?】语法相似,但 JSON 更严格:必须双引号、不能有函数、undefined 和注释。
【JSON 能写注释吗?】标准 JSON 不能。需要注释可以用 JSONC、JSON5 或 YAML,但接口传输时不要带注释。
【JSON 键名必须加引号吗?】必须用双引号。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。