JSON 与数据处理指南

JSON Schema:必填、null 与额外字段

编写最小对象 Schema,区分字段缺失、可空值、类型与额外属性。

Nav Tools ·

required 检查是否存在

properties 描述字段存在时如何验证,不会自动让字段变成必填,存在性由 required 控制。

值为 null 的字段已经存在,是否允许 null 由字段类型决定,与 required 是两件事。

{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}
{} → invalid
{"name":null} → invalid
{"name":"Ada"} → valid

显式声明可空类型

["string","null"] 表示两种类型均可接受;可空字段不等于可以省略的可选字段。

空字符串仍属于字符串,需要非空时加 minLength;纯空白是否允许仍应单独定义。

{"type":["string","null"]}

约束额外字段

默认允许额外属性,简单对象需要拒绝未知字段时设置 additionalProperties:false。

组合 Schema 要注意作用域,该关键字按照所在 Schema 的属性声明判断,应核对所选草案的组合规则。

从需求验证而非只从样例猜测

从一个样例生成 Schema,无法知道所有可选字段、枚举或数值边界,只能作为起点。

补充缺少必填、null、错误类型和多余键的失败样例;本站校验不获取远程 Schema 引用。

参考资料

← JSON 与数据处理指南