1. Basic Anatomy of a JSON Schema
A standard JSON Schema is itself a valid JSON document defining the `$schema` specification version, `type` declaration, `properties` object mapping, and `required` property list.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "UserRegistration",
"type": "object",
"properties": {
"user_id": {
"type": "integer",
"minimum": 1
},
"email": {
"type": "string",
"format": "email"
},
"role": {
"type": "string",
"enum": ["admin", "developer", "guest"]
}
},
"required": ["user_id", "email", "role"],
"additionalProperties": false
}2. Enforcing String Patterns, Ranges & Array Constraints
JSON Schema supports fine-grained constraint validation rules including string regex `pattern`, string `minLength`/`maxLength`, numeric `minimum`/`maximum`, and array `minItems`/`uniqueItems`.
{
"username": {
"type": "string",
"minLength": 3,
"maxLength": 20,
"pattern": "^[a-zA-Z0-9_]+$"
},
"tags": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": { "type": "string" }
}
}3. Validating JSON Schemas in JavaScript with Ajv
In Node.js and modern Web apps, Ajv (Another JSON Schema Validator) is the industry standard high-speed validator library:
const Ajv = require("ajv");
const ajv = new Ajv();
const schema = {
type: "object",
properties: { id: { type: "number" } },
required: ["id"]
};
const validate = ajv.compile(schema);
const valid = validate({ id: 101 });
if (!valid) console.log(validate.errors);
else console.log("Payload is 100% valid!");