模式只有在你能够实际检查文档并获得关于什么失败以及在哪里的清晰答案时才有用。此验证器涵盖此站点生成器编写的JSON Schema子集,因此在那里生成的模式保证可以在此页面上应用。
使用JSON Schema验证器
在左侧粘贴模式,在右侧粘贴要检查的文档,然后按验证。加载示例会同时填充两个窗格,因此你可以只编辑文档并立即看到模式拒绝什么。
给定模式
{
"type": "object",
"properties": {
"age": {"type": "integer", "minimum": 0},
"name": {"type": "string", "minLength": 2}
},
"required": ["age", "name"]
}
和文档{"age": -5, "name": "A"},验证一次通过报告两个问题:minimum在/age失败因为-5低于0,minLength在/name失败因为"A"只有一个字符。每个问题都被报告,不仅仅是第一个,每个都带有拒绝它的确切关键字和指向值的JSON Pointer,所以问题是你能走到的路径,而不是你必须解码的句子。
支持什么
Type、enum和const;properties、patternProperties、additionalProperties和required关键字;字符串上的长度、模式和格式;数字上的界限和倍数;数组上的items和uniqueItems;allOf、anyOf、oneOf和not组合器;if-then-else;以及通过$defs或definitions的本地引用。此验证器未实现的关键字被视为注释并忽略,这正是JSON Schema规范允许验证器对未识别关键字所做的。
什么会停止整个检查
指向模式内部没有任何内容的$ref,或者完全指向外部的$ref,会完全停止验证并说明。报告无法完全解析的模式的通过或失败结果将是伪装成答案的谎言,所以工具拒绝给出。
交换位置
由于模式和文档窗格在视觉上相似,交换位置将当前模式移动到文档窗格,反之亦然,如果你将它们粘贴到了错误的框中或想要快速检查模式针对自身的基本合理性时很有用。