z-schema
JavaScript编写的 JSON Schema 验证器用于 NodeJS和浏览器。
version 3也在可以在浏览器中运行,你可以自己在这运行测试
Topics
用法(Usage)
验证器将尝试在可能的速度下执行同步验证,但在必要时支持异步回调。
CLI:
npm install --global z-schema
z-schema --help
z-schema mySchema.json
z-schema mySchema.json myJson.json
z-schema --strictMode mySchema.json myJson.jsonNodeJS:
同步模式:
异步模式:
Browser:
远程引用和schemas:
如果您的架构中有一些远程引用,则必须在使用验证器之前下载这些schemas。否则,当试图编译schemas时,将获得UNRESOLVABLE_REFERENCE错误。
如果能够同步加载schemas,则可以使用ZSchema.setSchemaReader特性:
特征
验证 subschema
如果由于任何原因不想使用引用,将schema分割为多个schema,则可以在验证时使用schemaPath选项:
在 test 中查看更多细节。
编译schemas数组并使用它们之间的引用
可以使用验证器编译具有它们之间的引用的schema数组 , 然后对其中一个schema进行验证。
注册自定义格式
你可以注册任何你自己的格式。您的同步验证函数应该始终用boolean响应:
还支持异步格式验证器,它们应该接受两个参数、值和它们需要响应的回调:
帮助检查已注册的格式的Help方法
远程schemas的自动下载
远程模式的自动下载已经从3.x版本中移除,但是仍然可以使用一些额外的代码,有关这方面的更多信息,请参阅此测试。
使用格式预填充默认值到对象
使用格式,您可以预先将选择的值填充到这样的对象中:
选项(Options)
asyncTimeout
定义一个时间限制,在ASYNC_TIMEOUT错误导致验证失败之前,在等待异步任务(如异步格式验证器)执行验证时,应该使用这个时间限制。
noEmptyArrays
当为true时,验证器将假定任何数组中的项的最小计数为1,除非minItems: 0被显式定义。
noEmptyStrings
如果为true,则验证器假定任何字符串的传递字符串类型验证的最小长度为1,除非minLength: 0是显式定义的。
noTypeless
如果为true,则验证器将对没有指定期望的对象类型的schemas进行验证失败。
noExtraKeywords
当为true时,验证器将无法验证使用JSON Schema规范中未定义的关键字、且未在$schema属性中提供父schema来验证schema。
assumeAdditional
当为true时,验证器假设additionalItems/additionalProperties被定义为false,因此您不必手动修复所有schemas。
当为一个数组时,验证器假设additionalItems/additionalProperties被定义为false,但是允许一些属性通过。
forceAdditional
当为true时,验证器不验证schemas,其中additionalItems/additionalProperties应该定义为true或false。
forceItems
如果为true,则验证程序不验证schemas中item没有为array类型的schemas。这是为了避免通过数组定义传递任何内容。
更多的参数参见链接
基准点(Benchmarks)
那么它如何与version 2.x和其他版本相比呢?
注意:这些测试纯粹是面向对象的,它们不考虑任何验证器的额外特性
rawgithub.com/zaggino/z-schema/master/benchmark/results.html
Last updated
Was this helpful?