Crate jsonschema[−][src]
Expand description
jsonschema
A crate for performing fast JSON Schema validation. It is fast due to schema compilation into a validation tree, which reduces runtime costs for working with schema parameters.
Supports:
- JSON Schema drafts 4, 6, 7 (except some optional test cases);
- Loading remote documents via HTTP(S);
This library is functional and ready for use, but its API is still evolving to the 1.0 API.
Usage Examples:
A schema can be compiled with two main flavours:
- using default configurations
let compiled_schema = JSONSchema::compile(&schema).expect("A valid schema");
- using custom configurations (such as define a Draft version)
let compiled_schema = JSONSchema::options()
.with_draft(Draft::Draft7)
.compile(&schema)
.expect("A valid schema");
Example (CLI tool to highlight print errors)
use jsonschema::{Draft, JSONSchema};
use serde_json::json;
let schema = json!({"maxLength": 5});
let instance = json!("foo");
let compiled = JSONSchema::options()
.with_draft(Draft::Draft7)
.compile(&schema)
.expect("A valid schema");
let result = compiled.validate(&instance);
if let Err(errors) = result {
for error in errors {
println!("Validation error: {}", error);
println!("Instance path: {}", error.instance_path);
}
}
Each error has an instance_path
attribute that indicates the path to the erroneous part within the validated instance.
It could be transformed to JSON Pointer via .to_string()
or to Vec<String>
via .into_vec()
.
Re-exports
pub use error::ErrorIterator;
pub use error::ValidationError;
Modules
Error types
Facilities for working with paths within schemas or validated instances.
Primitive types for property type validators
Structs
Full configuration to guide the JSONSchema
compilation.
The structure that holds a JSON Schema compiled into a validation tree
The output format resulting from the application of a schema. This can be converted into various representations based on the definitions in https://json-schema.org/draft/2020-12/json-schema-core.html#rfc.section.12.2
Enums
The “basic” output format
JSON Schema Draft version
Functions
A shortcut for validating instance
against schema
. Draft version is detected automatically.