is-my-json-valid
A JSONSchema validator that uses code generation to be extremely fast
It passes the entire JSONSchema v4 test suite except for remoteRefs
and maxLength
/minLength
when using unicode surrogate pairs.
Usage
Simply pass a schema to compile it
You can also pass the schema as a string
Optionally you can use the require submodule to load a schema from __dirname
Custom formats
is-my-json-valid supports the formats specified in JSON schema v4 (such as date-time). If you want to add your own custom formats pass them as the formats options to the validator
External schemas
You can pass in external schemas that you reference using the $ref
attribute as the schemas
option
Filtering away additional properties
is-my-json-valid supports filtering away properties not in the schema
Verbose mode outputs the value on errors
is-my-json-valid outputs the value causing an error when verbose is set to true
Greedy mode tries to validate as much as possible
By default is-my-json-valid bails on first validation error but when greedy is set to true it tries to validate as much as possible:
Performance
is-my-json-valid uses code generation to turn your JSON schema into basic javascript code that is easily optimizeable by v8.
At the time of writing, is-my-json-valid is the fastest validator when running
If you know any other relevant benchmarks open a PR and I'll add them.
License
MIT