Skip to content

JSON Schema Validator

Validate JSON against Draft 7, 2019-09, or 2020-12 schemas. Review exact instance paths, schema keywords, source locations, and the parsed object without uploading data.

Validate JSON against a schema

The selected draft is applied exactly. Validation does not add defaults, coerce values, remove properties, or contact remote schema URLs.

Internal $ref, $defs, definitions, anchors, and recursive schema structures are supported. Remote $ref URLs are blocked so validation stays in this browser tab.

Validation result

The validation result will appear here

Run validation to see the matching draft, schema failures, exact JSON locations, and the parsed instance tree.

Debug JSON contracts without changing the payload

DecodeLens keeps validation non-mutating: defaults are not inserted, strings are not coerced to numbers, and unknown properties are not removed. Each diagnostic points back to its instance range and schema keyword.

Validation boundaries

  • Draft 7, 2019-09, and 2020-12 are explicit choices; a declared draft is never silently replaced.
  • Only internal references are resolved. Remote schema URLs and endpoints are never fetched.
  • Format validation is optional and includes common date, time, email, hostname, IP, URI, and UUID formats.
  • Integers outside JavaScript's exact range are reported because numeric keyword checks can otherwise lose precision.

Continue with tools that decode, convert, inspect, or verify the same data.

Check an API payload against its contract

Paste the payload and schema, select the matching draft, then run validation. Select a diagnostic to reveal the exact value in the JSON editor or browse the complete instance in Object View.

JSON instance

{ "id": 0, "email": "not-an-email" }

Schema diagnostics

$.id · minimum · line 1
$.email · format · line 1

JSON Schema Validator FAQ

Which JSON Schema drafts are supported?

Draft 7, Draft 2019-09, and Draft 2020-12 are supported. Choose the draft explicitly; if the schema declares a different one, validation stops with a mismatch error.

Does validation change my JSON?

No. DecodeLens does not add defaults, coerce types, or remove additional properties. It only reports whether the original instance matches the schema.

Can the validator load an external $ref?

No. Internal fragment references work, but remote references are blocked to prevent network access and keep the result reproducible.