Skip to content
Marvin's Toolbox.

Search tools

Type to filter all tools

JSON Schema Validator

Validate JSON against a JSON Schema and see every violation with its exact path, the failing rule and a plain explanation. Supports draft-07 through 2020-12 with format checks, and can infer a starter schema from your data.

Everything runs locally in your browser. Your data never leaves your device.

Detected 2020-12 from the schema's $schema field.
The data does not match the schema. 5 violations found.

Next steps

Keep going. These tools open with your result loaded in.

Paste JSON to explore it as a collapsible, searchable tree, hide the fields you don't need, and see the structure it implies as a badge-annotated schema and a copyable TypeScript interface.

Convert config and data between JSON, YAML, TOML, JSON5, INI, XML, CSV and .env. Type or paste on the left, pick the output format on the right, and copy the result. Includes a format button and a minify toggle.

Compare two JSON documents by structure and see every added, removed and changed key and value with its exact path. Browse the result as a tree, a filterable change list or a line diff, ignore array order, catch type changes and export the changes as a JSON report.

Convert text into every case at once: title case in the APA, AP, Chicago, MLA, Bluebook, AMA and NYT styles, sentence case, upper, lower, camelCase, snake_case, kebab-case and more.

Count words, characters, sentences, paragraphs, lines and more as you type, with estimated reading and speaking time.

Remove duplicate lines from a list or text, keeping the first occurrence. Optionally ignore case and whitespace, or drop blank lines too.

Replace text in two modes: plain find and replace all, or regular expressions with flag controls and capture group references like $1.

Compare two texts and see every added, removed and changed line highlighted, side by side or inline, with the changed words marked within each line. Ignore case, whitespace or blank lines, read a summary of how much changed, and export the result as a unified diff.

Paste a UUID to see what it carries: version, variant, and for time-based versions the exact timestamp, clock sequence and node. Also shows the raw bytes, the 128-bit integer and the URN form.

About the JSON Schema Validator Tool

This tool checks a JSON document against a JSON Schema and lists every violation it finds in one pass. Paste the schema on the left and the data on the right, and each problem shows up with its exact path, the rule it breaks and an explanation in plain words.

It supports draft-07, 2019-09 and 2020-12, reads the right draft from the schema's $schema field, and can write a starter schema for you by looking at your data.

What you can do

  • Validate JSON against a JSON Schema and see every violation at once.
  • Get the exact path, the failing keyword and a plain explanation for each violation.
  • Check format keywords like email, uuid, uri and date-time.
  • Switch between draft-07, 2019-09 and 2020-12, or let the $schema field decide.
  • Generate a starter JSON Schema from a sample document.
  • Catch mistakes in the schema itself with strict mode.
  • Copy or download the result as a JSON report.

How to use the JSON Schema Validator

  1. 1Paste your JSON Schema into the left editor, or click Infer from data to generate one from your document.
  2. 2Paste the JSON you want to check into the right editor.
  3. 3Read the verdict banner. Valid means every rule passed.
  4. 4Work through the violation list. Each entry names the value's path, the keyword it fails and why.
  5. 5Copy or download the JSON report if you need the result elsewhere.

Which draft is used

The validator reads the schema's $schema field and picks the matching draft on its own. Draft-04 and draft-06 schemas are treated as draft-07, the closest supported dialect. A schema without a $schema field is validated as 2020-12, the current version, and you can pin any draft by hand when the automatic pick is not what you want. The note next to the draft picker always tells you which draft is in effect and why.

Strict mode and format checking

Strict mode makes the validator reject schemas that are probably mistakes, like an unknown keyword, a misspelled properties or a required entry that names a property the schema never defines. It is a check on the schema itself, so leave it off when you only care about the data.

Format checking covers the common format values, including email, uuid, uri, date-time, ipv4 and hostname. Turn it off to match validators that treat formats as annotations and ignore them.

A starter schema from your data

Infer from data reads the document in the Data pane and writes a schema that accepts it: types, required properties, merged array items and detected string formats like emails and dates. It is a starting point, not a finished contract, so tighten it with limits, enums and patterns. Validation re-runs as you edit, and the sample fails on purpose so you can see how violations are reported. To explore the document itself first, open it in the JSON Inspector.

Credits

Open source does the heavy lifting in this tool. Thank you to:

  • Ajv

    The most widely used JSON Schema validator for JavaScript.

Everything this site builds on is listed on the credits page.

Convert config and data between JSON, YAML, TOML, JSON5, INI, XML, CSV and .env. Type or paste on the left, pick the output format on the right, and copy the result. Includes a format button and a minify toggle.

Run real jq filters against JSON in your browser. Write a filter, pass options like slurp or raw output, browse a built-in cheat sheet of common filters, and copy the result or send it to another tool.

Compare two JSON documents by structure and see every added, removed and changed key and value with its exact path. Browse the result as a tree, a filterable change list or a line diff, ignore array order, catch type changes and export the changes as a JSON report.

Paste JSON to explore it as a collapsible, searchable tree, hide the fields you don't need, and see the structure it implies as a badge-annotated schema and a copyable TypeScript interface.

Paste JSON and get matching TypeScript types, with interfaces or type aliases, optional readonly fields and comments showing example values detected in your data. Nested objects become their own named types.

Try JSONPath queries against your own JSON and see the matches instantly. Every result comes with its normalized path, sample queries help you get started, and the matches are ready to copy or send onward as JSON.