Validate JSON against a schema
Enter JSON in JSON Document and a schema in JSON Schema. The tool parses both inputs first, then checks whether the document follows the supplied schema. Both editors are required.
Choose the schema draft
Use the Schema draft selector to choose the specification manually. Available options include Draft 4, Draft 6, Draft 7, 2019-09, and 2020-12. The tool does not auto-detect the draft from the schema's $schema value.
How to use the validator
- Enter or paste the JSON you want to check in JSON Document.
- Enter or paste the schema in JSON Schema.
- Choose the matching value in Schema draft.
- To replace both editors with the built-in sample and validate it, click Load sample.
The document and schema must both be valid JSON before schema checks run. The tool reports syntax problems separately for either input.
Read validation results and errors
When the document passes, the results show No violations found. When it fails the schema, the results table shows Path, Location, Violation, and Schema rule. The path includes a JSON Pointer and a readable dot-path; the location gives a line and column in the document.
Use the displayed path and line/column values to locate the problem manually. Locations identify the relevant document node, so a missing required property or root-level rule can point to the containing object. The tool does not navigate to or highlight source positions.
- If JSON Document is empty, the tool asks you to enter a document.
- If JSON Schema is empty, the tool asks you to enter a schema.
- Invalid JSON in either editor stops schema validation. An invalid schema shows Schema is not valid JSON., while an invalid document shows Document is not valid JSON.; both include a line and column.
- After a syntax error or schema violation, Copy errors (TSV) copies the results as tab-separated text. It is disabled when there are no errors and depends on browser clipboard access.
Limitations and data handling
This engine implements a broad, custom, draft-aware subset of JSON Schema, not every keyword and draft behavior. Unsupported or malformed schema keywords may be ignored instead of producing a violation, so verify important schemas with a full JSON Schema implementation.
Format checks such as email, date, uri, and uuid are best-effort assertions, not full RFC-grade validation. Local $ref pointers within the pasted schema document are supported, but remote $ref targets are not fetched. The document is not reformatted or changed.
The validator processes the pasted document and schema locally in your browser and does not send them to a validation server. This page may still load Ahrefs and Google Analytics scripts independently of validation.
Frequently Asked Questions (FAQs)
How is this different from the JSON Validator & Formatter?
The JSON Validator & Formatter checks whether text is well-formed JSON and can pretty-print it. This tool checks whether valid JSON conforms to a schema you supply, including required properties, types, formats, patterns, enums, and object or array structure.
Which JSON Schema drafts are supported?
Draft-04, Draft-06, Draft-07, 2019-09, and 2020-12. Draft 4 uses boolean exclusiveMinimum/exclusiveMaximum, while Draft 6 and later use numeric values. Older drafts use tuple-style array items; 2020-12 uses prefixItems.
Does it change or reformat my JSON?
No. The source document is only parsed to check it and locate errors. It is not reformatted, sorted, or otherwise changed in the editor.
What happens if my JSON has a syntax error?
Invalid JSON syntax is reported separately from schema violations, with the exact line and column of the problem. Schema checking runs only after both the document and the schema parse as valid JSON.
Is it safe to paste real data into this tool?
The validator processes the pasted document and schema locally in your browser and does not send them to a validation server. The page may still load site analytics, so handle sensitive data according to your own data-handling policies.