What is json-schema?
The json-schema npm package is used to validate JSON data against a JSON schema. It ensures that the JSON data is structured in the way that is expected by the schema. This package can be used to validate configuration files, user input, or any other data represented in JSON format.
What are json-schema's main functionalities?
Validation
This feature allows you to validate JSON data against a schema. The code sample demonstrates how to define a schema and validate data against it, printing out whether the data is valid or not.
{"const validate = require('json-schema').validate; const schema = {type: 'object', properties: {name: {type: 'string'}, age: {type: 'number', minimum: 0}}, required: ['name', 'age']}; const data = {name: 'John Doe', age: 28}; const result = validate(data, schema); if (result.valid) {console.log('Valid!');} else {console.log('Invalid:', result.errors);} }
Schema Compilation
This feature compiles a JSON schema for faster validation of multiple data sets. The code sample shows how to compile a schema which can then be used to validate data more efficiently.
{"const jsonSchema = require('json-schema'); const schema = {type: 'object', properties: {name: {type: 'string'}, age: {type: 'number', minimum: 0}}, required: ['name', 'age']}; const compiledSchema = jsonSchema.compile(schema); }
Other packages similar to json-schema
ajv
Ajv is a fast JSON schema validator. It supports draft-06/07/2019-09 of JSON Schema, has better performance than json-schema, and provides a richer set of features like custom keywords and formats, asynchronous schema compilation, and more.
tv4
Tiny Validator (tv4) is a small and fast JSON Schema V4 validator. It is simpler and has a smaller footprint than json-schema but does not support newer JSON Schema drafts and might not be as actively maintained.
joi
Joi is a powerful schema description language and data validator for JavaScript. Unlike json-schema, Joi provides a fluent API for describing data schemas and includes built-in types and validation rules that can be combined to express complex validation strategies.
This is a historical repository for the early development of the JSON Schema specification and implementation. This package is considered "finished": it holds the earlier draft specification and a simple, efficient, lightweight implementation of the original core elements of JSON Schema. This repository does not house the latest specifications nor does it implement the latest versions of JSON Schema. This package seeks to maintain the stability (in behavior and size) of this original implementation for the sake of the numerous packages that rely on it. For the latest JSON Schema specifications and implementations, please visit the JSON Schema site (or the respository).
Code is licensed under the AFL or BSD 3-Clause license.