JSON 校验与格式化:语法、形状和 Schema 是三件事
JSON 校验与格式化:语法、形状和 Schema 是三件事
解释 JSON formatter 能证明什么、不能证明什么,语法和 schema 有何区别,以及如何安全审查 payload。
原创流程图
JSON 校验与格式化:语法、形状和 Schema 是三件事
理解原理
检查后再进入下一步
检查边界
检查后再进入下一步
使用工具
检查后再进入下一步
JSON 要求属性名加引号、字符串使用双引号、逗号正确、括号平衡,并使用 true、false、null 等合法字面量。语法校验只回答“这段文本能不能被解析成 JSON”,它不证明字段符合目标系统。
格式化工具改变空白和缩进,让结构更容易检查。它不应该改变值。如果格式化后值变了,说明另有问题。格式化适合截图、文档和调试,但不是修复缺失字段、错误类型或业务数据的工具。
Schema 可以定义必填字段、类型、字符串格式、数组长度、枚举值和嵌套形状。一个 JSON 语法正确、缩进漂亮,仍可能因为日期格式错误或数字被传成字符串而不符合 schema。真实集成通常需要语法和契约同时检查。
JSON 有字符串、数字、布尔、null、数组和对象,但没有原生日期、二进制或 undefined,也不像数据库那样区分整数和小数。ID、金额、时间戳和空值在多层系统之间传递时尤其需要检查。
原始 JSON 文本里可能出现重复属性名。不同解析器可能保留第一个、最后一个、直接拒绝或按设置处理。格式化工具可能在解析后隐藏问题。在权限、配置和功能开关里,重复键可能让人和软件读到不同值。
生产日志里的 JSON 常包含 token、邮箱、用户 ID、IP、内部 URL 和功能开关。格式化让它更容易读,也更容易泄露。分享前应使用保留类型和结构的占位符替换敏感值。
先做语法校验,确认文本能解析;再格式化查看嵌套、数组长度、字段名和可疑值;然后对照 schema 或 API 契约;最后测试一个真实边界:缺失字段、null、非 ASCII、大数字或空数组。
常见问题
如果 payload 可能损坏,先校验;如果已知能解析,只是为了阅读,可以先格式化。
会。API 还可能要求 schema、认证、字段名或业务规则。
不是。空白通常不改变 JSON 含义,漂亮格式给人看,压缩格式适合传输。
包含嵌套对象、数组、布尔、null、数字、字符串、非 ASCII 和一个可选字段。
人可能读第一个,解析器可能保留最后一个,配置和权限场景会因此改变行为。