What you can do here
- JSON data and schema syntax checks
- Draft 7 definitions and Draft 2020-12 $defs with local $ref
- Draft 2020-12 prefixItems and dependentRequired
- Draft 2020-12 unevaluatedProperties
- Common string and numeric assertions
- date-time, date, time, email, URI, and UUID format validation
- Array and object constraint validation
- allOf, anyOf, oneOf, and not
- JSON Pointer issue locations
- Unsupported keyword rejection
- Browser-local processing
How to use
- Paste the JSON value that needs contract validation.
- Paste a schema using the currently supported keyword subset.
- Select Validate JSON and review each JSON Pointer path.
- Correct the data or schema, then rerun validation until it passes.
Schema validation checks data rules, not JSON grammar alone
A document can be syntactically valid JSON while still containing the wrong value type, omitting a required property, or placing an unsupported value inside an array. Schema validation runs after parsing and checks those structural contract rules.
Syntax errors in the data and syntax or definition errors in the schema are reported separately so they are not confused with data validation failures.
Supported validation keywords in the first release
The validator supports VetaTool's generated subset plus documented Draft 7 and Draft 2020-12 profiles. Draft 7 includes local definitions and $ref, while Draft 2020-12 adds $defs, prefixItems, dependentRequired, and unevaluatedProperties alongside the shared assertion keywords and supported string formats.
- Type checks cover object, array, string, boolean, null, integer, and number.
- Required checks report the containing object path and missing property name.
- Properties and array items are validated recursively with escaped JSON Pointer paths.
- Local JSON Pointer references resolve from definitions or $defs in the same schema document; external references are rejected rather than fetched.
- String format checks cover date-time, date, time, email, absolute URI, and UUID values with JSON Pointer issue locations.
Review the supported subset before treating a result as complete
This release implements practical Draft 7 and Draft 2020-12 subsets but does not claim every keyword. Unsupported formats and features such as patternProperties, contains, conditional schemas, dynamic references, and remote references cause a clear error instead of a misleading pass result.
Validation runs locally in the browser, so the data and schema are not sent to a validation service.