ZenovayTools

JSON Schema Validator

Validate JSON data against a JSON Schema. Supports draft-07 with type, required, properties, enum, pattern, and more.

How to Use JSON Schema Validator

  1. 1Paste your JSON data in the left panel.
  2. 2Paste or write your JSON Schema in the right panel.
  3. 3Click Validate to check conformance.
  4. 4Review validation errors with JSON paths and descriptions.
Zenovay

Privacy-first analytics for your website

Understand your visitors without invasive tracking. GDPR compliant, lightweight, and powerful.

Explore Zenovay

Frequently Asked Questions

What is JSON Schema?
JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. A schema is itself a JSON document that describes the shape, types, and constraints of your data. It is used for API documentation (OpenAPI/Swagger), configuration validation, data pipeline contracts, and form validation. This tool supports a practical subset of JSON Schema draft-07.
What keywords are supported?
This validator supports the most widely used JSON Schema keywords: type (string, number, integer, boolean, null, array, object), required (array of required property names), properties (per-property sub-schemas), additionalProperties (boolean or schema), minLength / maxLength, minimum / maximum / exclusiveMinimum / exclusiveMaximum, pattern (regex), enum, const, items (array item schema), minItems / maxItems, allOf / anyOf / oneOf, and $ref (for local definitions).
What is the difference between allOf, anyOf, and oneOf?
allOf — data must be valid against ALL listed sub-schemas. Used to extend or compose schemas. anyOf — data must be valid against AT LEAST ONE sub-schema. Used for union types. oneOf — data must be valid against EXACTLY ONE sub-schema (mutually exclusive). If data matches two oneOf schemas, it fails. For optional/nullable fields, anyOf: [{type: "string"}, {type: "null"}] is common.
How do I validate an array of objects?
Use the items keyword on an array-type schema: {"type": "array", "items": {"type": "object", "required": ["id", "name"], "properties": {"id": {"type": "integer"}, "name": {"type": "string"}}}}. This validates that every element in the array is an object with the required id (integer) and name (string) properties.
What is additionalProperties?
additionalProperties controls whether object properties beyond those listed in properties are allowed. Set to false to reject any extra keys: {"type": "object", "properties": {"name": {"type": "string"}}, "additionalProperties": false}. Set to a schema object to require extra properties match that schema. The default is true (any additional properties allowed). This is commonly used to enforce strict API contracts.