Generador de esquema JSON
Genera automáticamente un esquema JSON (Draft-07) a partir de cualquier JSON de muestra. Pega tu JSON y obtén un esquema válido al instante, sin registro.
Sangría:
JSON de entrada
Esquema generado
Tu esquema JSON aparecerá aquí
Herramientas relacionadas
Acerca del generador de esquema JSON
Cómo funciona
- Pega o escribe cualquier JSON válido en el panel izquierdo
- La herramienta analiza recursivamente cada clave y valor
- Se infieren tipos: string, number, integer, boolean, object, array, null
- Todas las claves presentes se listan en el array "required"
- El esquema Draft-07 resultante se muestra a la derecha
Casos de uso comunes
- Arrancar documentación de API y esquemas OpenAPI
- Validar payloads JSON en servicios backend
- Generar tipos TypeScript con herramientas como json-schema-to-typescript
- Crear contratos de datos estrictos entre microservicios
- Documentar formatos de archivos de configuración
Preguntas frecuentes
¿Qué es un esquema JSON?
Un esquema JSON es un vocabulario que permite anotar y validar documentos JSON. Describe la estructura, tipos y restricciones de tus datos JSON, facilitando la validación de entradas, la generación de documentación y el intercambio de contratos de datos entre servicios.
¿Qué borrador de esquema JSON genera esta herramienta?
Esta herramienta genera JSON Schema Draft-07, que es la versión más ampliamente compatible. Draft-07 es compatible con la mayoría de validadores, editores y herramientas de API actuales, incluidos VS Code, Postman y OpenAPI 3.x.
¿Cómo funciona la inferencia del esquema?
La herramienta inspecciona recursivamente cada valor en tu JSON. Para cada clave determina el tipo JSON (string, number, integer, boolean, array, object o null), recopila todas las claves únicas en objetos y las marca como requeridas. Los tipos de elementos de array se infieren del primer elemento. No se envían datos al servidor.
¿Todas las claves se marcan como requeridas?
Por defecto, cada clave presente en el JSON de muestra se añade al array "required". Si tus datos reales pueden tener campos opcionales, simplemente elimina esas claves del array required en el esquema generado antes de usarlo.
¿Qué sucede con los valores nulos?
Cuando un valor es null en el JSON de muestra, la herramienta genera un tipo "null". Si el campo puede contener otros tipos también, debes cambiar manualmente el tipo a un array como ["string", "null"] tras generar el esquema.
¿Puedo generar un esquema desde un array JSON en el nivel raíz?
Sí. Si tu JSON es un array de nivel superior, el esquema generado tendrá tipo "array" con un sub-esquema "items" inferido del primer elemento. Esto modela correctamente colecciones de objetos uniformes.
¿Se envían mis datos JSON a un servidor?
No. Todo el procesamiento ocurre completamente en tu navegador usando JavaScript del lado del cliente. Tu JSON nunca se transmite a nuestros servidores, por lo que los datos sensibles permanecen privados.
¿Puedo usar el esquema generado en especificaciones OpenAPI / Swagger?
Sí. OpenAPI 3.x usa un superconjunto de JSON Schema Draft-07, por lo que el resultado de esta herramienta puede pegarse directamente en la sección "schema" de un componente OpenAPI con ajustes menores.
¿Qué pasa si mi JSON tiene objetos profundamente anidados?
La herramienta admite completamente estructuras JSON anidadas arbitrariamente. Cada objeto anidado obtiene su propio bloque "properties" con anotaciones de tipo correctas, y la profundidad de anidamiento no tiene límite duro.
¿Cuál es la diferencia entre "number" e "integer" en JSON Schema?
JSON Schema distingue entre "integer" (números enteros como 1, 42, -7) y "number" (cualquier valor numérico incluyendo decimales como 3.14). Esta herramienta usa automáticamente "integer" cuando el valor no tiene parte fraccionaria, y "number" en caso contrario.
¿Puedo personalizar el esquema tras generarlo?
Absolutamente. El resultado es texto editable. Las personalizaciones comunes incluyen añadir campos "description", restringir cadenas con "minLength"/"maxLength" o "pattern", añadir arrays "enum" y ajustar la lista "required".
¿Qué hace la opción "additionalProperties: false"?
Cuando está habilitada, se añade "additionalProperties: false" a cada objeto en el esquema. Esto le indica a los validadores que rechacen cualquier clave no listada explícitamente en "properties". Es útil para contratos de API estrictos.