Lintify Logo
Lintify
Schema & Query

JSON Schema Validator

Validate any JSON document against a JSON Schema (draft 2020-12, draft 07, and earlier). Get clear error paths for every validation failure.

JSON Schema
JSON data
Result
Paste both a schema and JSON data to validate.

Validate JSON against a schema

Parsing JSON tells you that the document is well-formed — the quotes match, the brackets balance, the commas are in the right places. It does not tell you that the document is correct. A JSON object with {"name": 42} is valid JSON, but if your application expects name to be a string, you have a bug. JSON Schema lets you describe the shape your data should have, and a validator like the one on this page checks that a document matches.

Lintify uses ajv under the hood — the same JSON Schema validator that powers most Node.js projects. It supports draft 2020-12, draft-07, draft-06, and draft-04. The tool auto-detects the draft from the $schema field in your schema, so you usually do not need to think about which version you are using.

How to read validation errors

When validation fails, Lintify shows every error that the validator found. Each error has three pieces of information: the JSON Pointer of the failing instance (for example,/users/0/email), the keyword that failed (such as type or required), and a human-readable message. Follow the pointer to find the exact value in your data that violated the rule, then check the schema at the corresponding path to understand what was expected.

Supported keywords and formats

All standard JSON Schema keywords are supported: type,required, properties,items, enum, const,minimum, maximum,minLength, maxLength,pattern, anyOf, oneOf,allOf, not, $ref, and many more. Common string formats like email,uri, uuid, date-time,ipv4, and ipv6 are also recognized thanks to ajv-formats.

Validation vs parsing vs generation

Validation is the third step in a typical JSON workflow. The first step is parsing — checking that the input is well-formed JSON. The second step is validation — checking that the parsed value matches your schema. The third step is generation — producing TypeScript or Java types from the schema so your code is type-safe. Lintify has tools for all three: the JSON Validator for parsing, this tool for validation, and the JSON Schema Generator for going from sample data to a schema.

Frequently asked questions

Common questions about the Schema Validator tool.

Which JSON Schema drafts are supported?
Lintify uses Ajv under the hood, which supports draft 2020-12, draft-07, draft-06, and draft-04. The tool auto-detects the draft from the $schema field in your schema. If you omit it, draft-07 is assumed by default.
Can I use external $ref pointers?
Only inline $ref pointers (pointing to other parts of the same schema document) are supported in the browser. If your schema references external files, bundle them first with a tool like json-schema-bundler. Lintify focuses on the common case of a single self-contained schema.
How do I read the error messages?
Each error shows the JSON Pointer of the failing instance (for example, /users/0/email), the keyword that failed (such as type or required), and a human-readable message. Follow the pointer in your data to find the exact value that violated the rule.
Does it support custom formats like 'email' or 'uuid'?
Yes. Ajv's format plugin is bundled, so common formats like email, uri, uuid, date-time, ipv4, and ipv6 work out of the box. For proprietary formats, you would need to add a custom format keyword in code — Lintify does not run user-supplied JavaScript for security reasons.
What is the difference between validation and parsing?
Parsing checks that the input is well-formed JSON (correct quotes, brackets, commas). Validation checks that the parsed value matches a contract defined by your schema. A document can be valid JSON but invalid against your schema — that is the case Lintify helps you catch.

Related tools