Validate JSON Against Schema
Validate JSON data files against a JSON Schema definition.
Usage
npx tsx scripts/validate.ts <json-file> --schema=<schema-file> [options]
Arguments
| Argument | Required | Description |
|---|---|---|
json-file | Yes | Path to the JSON file to validate |
Options
| Option | Description |
|---|---|
--schema=FILE | Path to the JSON Schema file (required) |
--all-errors | Report all errors, not just the first |
--strict | Enable strict mode validation |
--verbose | Show detailed validation output |
--format | Output format: text (default), json |
Output
Valid JSON:
Valid
Schema: user-schema.json
File: user.json
Invalid JSON:
Invalid (3 errors)
1. /email: must match format "email"
2. /age: must be >= 0
3. /name: must be string
Script Execution
npx tsx scripts/validate.ts data.json --schema=schema.json
npx tsx scripts/validate.ts data.json --schema=schema.json --all-errors
npx tsx scripts/validate.ts data.json --schema=schema.json --format=json
Run from the json-schema plugin directory: ~/.claude/plugins/cache/json-schema/
Batch Validation
Validate multiple files against the same schema using glob patterns:
# Validate all JSON files in a directory
for f in data/*.json; do npx tsx scripts/validate.ts "$f" --schema=schema.json; done
JSON Output Format
When using --format=json:
{
"valid": false,
"file": "user.json",
"schema": "user-schema.json",
"errors": [
{
"path": "/email",
"message": "must match format \"email\"",
"keyword": "format"
}
]
}
Error Messages
Common validation errors:
must be string- Type mismatchmust match format "..."- Format validation failedmust be >= N/must be <= N- Number range violationmust NOT have additional properties- Unknown propertymust have required property '...'- Missing required fieldmust match pattern "..."- String pattern mismatch
Related Skills
- Use
schema-metato validate that a schema is well-formed - Use
schema-checkto validate a JSON file against its embedded$schema
