Genera JSON Schema desde documentos JSON completos
Genera un JSON Schema a partir de tus ejemplos. Revisa qué campos son obligatorios, comprueba las muestras y descarga el esquema.
Espacio de trabajo de la herramienta
Generador de JSON Schema
Activa JavaScript para inferir un esquema localmente en tu navegador.
Cada editor contiene un documento JSON completo. Un array raíz sigue siendo un array. Los ejemplos orientan el esquema; no demuestran las reglas de tu dominio.
Hasta 20 muestras; 250.000 unidades UTF-16 por muestra y 500.000 en total; 1.000.000 bytes por archivo; profundidad 20; 50.000 nodos fuente totales; 2000 nodos inferidos; esquema de hasta 100.000 unidades UTF-16. Los presupuestos de trabajo pueden agotarse antes.
El procesamiento ocurre en tu navegador. Las muestras no se envían ni se guardan.
1 muestra(s).
Introduce JSON en cada muestra.
Se omitieron diagnósticos adicionales al alcanzar un presupuesto de diagnósticos.
Este navegador no puede iniciar un Worker. Usa un navegador compatible para procesar las muestras localmente.
Campos y tipos inferidos
Null es un valor presente; no convierte un campo en opcional. La presencia se mide sólo entre objetos de esa ubicación.
Las ramas de objeto y array se combinan. El esquema puede aceptar combinaciones adicionales porque no se infieren relaciones entre campos.
No hay candidatos de formato en esta página.
Las sugerencias requieren al menos dos strings, cada uno de hasta 1.024 unidades UTF-16, y ningún contraejemplo. Los ejemplos duplicados cuentan como observaciones. Los formatos no se emiten ni se validan en v1.
El esquema no acepta todas las muestras. La copia y descarga incluyen el esquema completo con tus reglas de requeridos manuales.
Compatibilidad de las muestras
Copia manual
Selecciona la salida completa y cópiala con el teclado. Cierra esta ayuda para volver al botón Copiar.
Copia el esquema y pégalo manualmente en el validador. Estos enlaces no transfieren muestras ni el esquema.
Analiza documentos antes de generar
Pega un documento JSON completo en cada editor o abre un archivo local .json UTF-8. Añade hasta veinte muestras, pulsa Analizar muestras, revisa los campos y selecciona Generar esquema.
Todas las muestras deben ser JSON estricto válido. Corrige los editores vacíos, las claves duplicadas, los comentarios, JSONC/JSON5 o los números que pierdan precisión antes de continuar; la herramienta no ignora las muestras que fallan.
Un array en un editor cuenta como una muestra, y todos sus elementos contribuyen al esquema. Varios editores producen un esquema común para sus documentos. Una muestra también puede ser una cadena, un número, un booleano o null.
Ejemplo de array:
[{"id":1},{"id":2,"nombre":"Ana"}]
El esquema deducido de estos dos objetos es:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"nombre": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": true
}
}
Decide qué campos son obligatorios
En el ejemplo, id aparece en los dos objetos, así que se considera obligatorio. nombre solo aparece en uno y queda como opcional. Si marcas nombre como obligatorio, el primer objeto deja de cumplir el esquema: el informe señala /0, con la regla required en /items/required. Puedes exportarlo, pero verás un aviso de que algunas muestras no lo cumplen.
Una propiedad ausente y una propiedad con valor null son casos distintos. En [{"x":null},{"x":"a"},{}], x es opcional y acepta null o una cadena. Si eliminas el objeto vacío, x pasa a ser obligatorio y sigue aceptando null.
La herramienta deduce los campos obligatorios de tus ejemplos, no de las reglas de tu aplicación. Para objetos anidados, solo compara los que están en la misma ubicación. Revisa la selección antes de usar el esquema. Restablecer los campos inferidos elimina todas las elecciones manuales, incluidas las de otras páginas.
Un array vacío [] genera type: "array" con items: {}, porque no permite deducir el tipo de sus elementos. Un objeto vacío {} no aporta propiedades. Los enteros y las fracciones se combinan como number; otros tipos mezclados forman una unión type. Por eso, el esquema puede aceptar combinaciones que no aparecen en tus ejemplos.
Qué comprueba el esquema generado
La salida usa JSON Schema draft-07. Describe tipos, propiedades de objetos, campos obligatorios y elementos de arrays. Los objetos aceptan propiedades adicionales mediante additionalProperties: true. Puedes añadir title y description en la raíz.
No se deducen listas de valores permitidos, rangos numéricos, patrones, referencias, tuplas ni condiciones con anyOf, oneOf o allOf. Añade esas reglas si tu aplicación las necesita.
Las sugerencias de formato pueden identificar correos ASCII, URI absolutas HTTP(S) y fechas escritas como YYYY-MM-DD. Actívalas antes de analizar. Deben coincidir al menos dos cadenas; un contraejemplo o una cadena de más de 1.024 unidades UTF-16 elimina la sugerencia. Las sugerencias no añaden una regla format al esquema, y la comprobación integrada no valida formatos.
Exportación y límites
Copiar o descargar incluye el esquema completo, sin importar qué página de campos estés viendo. La descarga se llama schema.json, usa el tipo MIME application/schema+json y está codificada en UTF-8 sin BOM. Puedes elegir sangría de dos o cuatro espacios. Los saltos son LF, sin salto final. Si falla el portapapeles, copia desde el campo de salida completa.
| Límite | Máximo |
|---|---|
| Muestras | 20 |
| Archivo | 1.000.000 bytes |
| Texto por muestra / total | 250.000 / 500.000 unidades UTF-16 |
| Contenedores anidados por muestra | 20 niveles |
| Valores por muestra / total | 25.000 / 50.000 |
| Propiedades inferidas | 2.000 |
| Texto del esquema | 100.000 unidades UTF-16 |
| Título / descripción | 256 / 2.000 unidades UTF-16 |
| Tiempo de análisis o generación | 8 segundos |
Las muestras complejas o los nombres de campo muy largos pueden alcanzar otros límites de procesamiento antes. Si la operación falla o se cancela, no se entrega un esquema parcial. La lista de campos muestra hasta 25 entradas por página.
Los archivos deben usar UTF-8. Se retira un BOM inicial con aviso; un segundo es inválido. Editar muestras o cambiar las sugerencias de formato exige volver a analizar y restablece los campos obligatorios elegidos. Cambiar los campos obligatorios o las opciones del esquema exige generar de nuevo la salida.
El procesamiento se realiza en un Worker local y requiere JavaScript. Las muestras no se suben ni se guardan. Para usar el validador relacionado, copia y pega el esquema; los enlaces no transfieren tus datos.