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.