Cómo se usa
- Pega un ejemplo de JSON o haz clic en «Cargar ejemplo».
- Indica el título del esquema raíz en «Nombre del tipo raíz».
- Copia o descarga el esquema y añade restricciones como formatos, patrones y rangos.
Opciones explicadas
- Nombre del tipo raíz
- Se usa como title del esquema.
Ejemplos
{"id": 1, "email": null} se convierte en un esquema con "id": {"type": "integer"}, "email": {"type": "null"} y las dos claves en required.
Ejemplo
Dos registros de usuario, en los que solo el primero tiene correo electrónico y manager a veces es null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
Con el nombre del tipo raíz fijado en User, el esquema generado es:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
email queda fuera de required porque el segundo registro no lo tiene, y manager acepta null o un objeto porque ambos aparecen en la muestra. Cuanto más variados sean tus datos de ejemplo, más preciso será el esquema: pega varios registros en lugar de uno.
Usos habituales
Validar la entrada de una API. Carga el esquema en un validador como Ajv (JavaScript) o jsonschema (Python) y rechaza las peticiones que no coincidan.
Documentar una API. Pega las propiedades en una sección components.schemas de OpenAPI como punto de partida.
Autocompletado en el editor. VS Code y los IDE de JetBrains pueden usar un JSON Schema para sugerir claves y señalar errores en los archivos de configuración JSON.
Preguntas frecuentes
¿Qué claves se marcan como obligatorias?
Las que están presentes en todos los objetos del ejemplo. Cuando un array contiene objetos con claves distintas, las claves que faltan en algunos elementos quedan fuera de required.
¿Puedo usarlo con OpenAPI?
OpenAPI 3.1 usa JSON Schema 2020-12, así que el esquema generado encaja en components/schemas. Para OpenAPI 3.0, sustituye los arrays de tipos como ["string", "null"] por nullable true.
¿Detecta formatos como email o date-time?
No. Solo deduce los tipos. Añade a mano format, pattern, minimum y palabras clave similares donde haga falta.
¿Se sube mi JSON?
No. Los tipos se generan en tu navegador, así que las respuestas de API con datos reales no salen de tu dispositivo.
Privacidad
Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.