JSON Schema Validator

Validate JSON against a JSON Schema subset and list every violation.

  • Runs locally in your browser
  • No upload required

Try it

Paste the document. It is validated in your browser and never uploaded.

Supported subset: type, enum, const, required, properties, additionalProperties, items, bounds, pattern and combinators.

Status
Valid
Details
Valid: the document satisfies the schema.

Supported formats

Input
text
Output
text

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

The document is valid against the schema.

How it works

  • Parsed the schema and the document with the verbatim JSON scanner.
  • Applied each supported keyword, recursing into properties and items.
  • Reported every violation with a JSON Pointer path and the failing keyword.
  • Unsupported keywords are reported as warnings; $ref and remote schemas are out of scope (no network).

Methodology

  1. Parse the schema and document with the F054 verbatim scanner.
  2. Apply each supported keyword recursively, tracking a JSON Pointer path.
  3. Record violations with their keyword and unsupported keywords as warnings.

Usage

  1. Paste the JSON document.
  2. Paste the JSON Schema.
  3. Run the tool and read the validity result, every violation and any unsupported-keyword warnings.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

Valid document

jsonSelect to copy
{
  "text": "{\"name\":\"Ada\",\"age\":36}",
  "schema": "{\"type\":\"object\",\"required\":[\"name\",\"age\"],\"properties\":{\"name\":{\"type\":\"string\"},\"age\":{\"type\":\"integer\",\"minimum\":0}}}"
}

Type violation

jsonSelect to copy
{
  "text": "{\"age\":\"thirty-six\"}",
  "schema": "{\"type\":\"object\",\"properties\":{\"age\":{\"type\":\"integer\"}}}"
}

Limitations

Reading violations

Each line starts with the JSON Pointer of the failing value and the keyword that failed, so a nested error is easy to locate.

Frequently asked questions

Which schema keywords are supported?
type, enum, const, required, properties, additionalProperties (boolean), items, the numeric and length bounds, pattern, allOf, anyOf, oneOf and not.
What happens to an unsupported keyword?
It is listed as a warning so it is never silently treated as satisfied.
Is my data uploaded?
No. The document and schema are processed entirely in your browser and are never sent anywhere.

Sources

  1. JSON Schema Draft 2020-12 — JSON Schema
  2. JSON Schema — Understanding JSON Schema — JSON Schema