JSON Schema Generator
Overview
Creates JSON Schema definitions for data validation and API documentation.
Instructions
When generating JSON Schema:
- Analyze the data structure or requirements
- Determine types for each field (string, number, object, array, etc.)
- Add constraints: required fields, patterns, min/max values
- Include descriptions for documentation
- Set appropriate
$schema version (draft-07 recommended)
Schema Components
Basic Types
string - Text values
number / integer - Numeric values
boolean - True/false
object - Nested structures
array - Lists of items
null - Null values
Common Constraints
required - Mandatory fields
minLength / maxLength - String length
minimum / maximum - Number bounds
pattern - Regex validation
enum - Allowed values
format - Semantic formats (email, uri, date-time)
Examples
Example: User Schema
Input:
"Create a schema for a user with name, email, age, and optional phone"
Output:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "User",
"type": "object",
"required": ["name", "email", "age"],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "User's full name"
},
"email": {
"type": "string",
"format": "email",
"description": "User's email address"
},
"age": {
"type": "integer",
"minimum": 0,
"maximum": 150,
"description": "User's age in years"
},
"phone": {
"type": "string",
"pattern": "^\\+?[1-9]\\d{1,14}$",
"description": "Optional phone number in E.164 format"
}
},
"additionalProperties": false
}
Guidelines
Do
- Always include
$schema declaration
- Add descriptions for all properties
- Use
additionalProperties: false for strict validation
- Prefer specific formats over loose patterns
- Use
required array for mandatory fields
Don't
- Use overly permissive types (avoid
{} or true)
- Skip validation constraints on user input
- Mix draft versions in same schema
- Forget to handle nullable fields explicitly
1---2name: json-schema3description: Generate and validate JSON Schema definitions. Use when asked to create schemas, validate JSON structure, or document API payloads.4---56# JSON Schema Generator78## Overview910Creates JSON Schema definitions for data validation and API documentation.1112## Instructions1314When generating JSON Schema:15161. **Analyze the data structure** or requirements172. **Determine types** for each field (string, number, object, array, etc.)183. **Add constraints**: required fields, patterns, min/max values194. **Include descriptions** for documentation205. **Set appropriate `$schema`** version (draft-07 recommended)2122## Schema Components2324### Basic Types25- `string` - Text values26- `number` / `integer` - Numeric values27- `boolean` - True/false28- `object` - Nested structures29- `array` - Lists of items30- `null` - Null values3132### Common Constraints33- `required` - Mandatory fields34- `minLength` / `maxLength` - String length35- `minimum` / `maximum` - Number bounds36- `pattern` - Regex validation37- `enum` - Allowed values38- `format` - Semantic formats (email, uri, date-time)3940## Examples4142### Example: User Schema4344**Input:**45"Create a schema for a user with name, email, age, and optional phone"4647**Output:**48```json49{50 "$schema": "http://json-schema.org/draft-07/schema#",51 "title": "User",52 "type": "object",53 "required": ["name", "email", "age"],54 "properties": {55 "name": {56 "type": "string",57 "minLength": 1,58 "maxLength": 100,59 "description": "User's full name"60 },61 "email": {62 "type": "string",63 "format": "email",64 "description": "User's email address"65 },66 "age": {67 "type": "integer",68 "minimum": 0,69 "maximum": 150,70 "description": "User's age in years"71 },72 "phone": {73 "type": "string",74 "pattern": "^\\+?[1-9]\\d{1,14}$",75 "description": "Optional phone number in E.164 format"76 }77 },78 "additionalProperties": false79}80```8182## Guidelines8384### Do85- Always include `$schema` declaration86- Add descriptions for all properties87- Use `additionalProperties: false` for strict validation88- Prefer specific formats over loose patterns89- Use `required` array for mandatory fields9091### Don't92- Use overly permissive types (avoid `{}` or `true`)93- Skip validation constraints on user input94- Mix draft versions in same schema95- Forget to handle nullable fields explicitly