Generador de JSON Schema
Genera un borrador de JSON Schema desde una muestra JSON en tu navegador - sin cuenta, sin subida, sin CLI.
Acerca de Generador de JSON Schema
Genera un borrador de JSON Schema desde una muestra JSON en tu navegador - sin cuenta, sin subida, sin CLI. Pega una respuesta de API o, mejor, un array de registros. Los objetos anidados se convierten en schemas anidados, los arrays se tipan con cada elemento (no solo el primero), y las claves ausentes en algunos items quedan opcionales (fuera de required). JSON null se convierte en un tipo nullable en vez de mezclarse con opcional. Se infieren formats cuando los valores parecen email, uri, uuid, date o date-time. Elige Draft-07 o 2020-12 y copia o descarga el schema. Combinalo con el Conversor JSON a TypeScript para interfaces desde la misma muestra, o el Minificador JSON si el payload llego minificado.
Cómo usar Generador de JSON Schema
- Pega JSON (un array de registros infiere claves opcionales mejor que un solo objeto). Carga un ejemplo si quieres ver opcional vs nullable.
- Pon el titulo del schema y elige Draft-07 (por defecto) o 2020-12. Decide si los objetos rechazan o permiten propiedades adicionales.
- Lee el informe: propiedades, requeridas, opcionales y formats. Los avisos marcan arrays vacios, objetos vacios, campos solo-null y uniones mixtas.
- Copia el JSON Schema o descarga un .schema.json. Usalo en AJV, OpenAPI o validadores de CI.
- Nada se envia a un servidor. El JSON invalido reporta linea y columna.
Ejemplos de Generador de JSON Schema
Clave opcional desde un array de registros
[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}] genera un schema de array cuyos items exigen sku y qty, mientras gift es opcional (no esta en required).
Nullable vs opcional
Dos usuarios donde email falta en una fila y note es null en la otra emiten email como string opcional y note como type ["string","null"]. Claves ausentes y JSON null siguen distintos.
Pistas de format en strings
Valores que parecen emails, URLs https, UUID, fechas ISO o date-time reciben format: email, uri, uuid, date o date-time.
Contenedores vacios
{"items":[],"meta":{}} tipa items como array con items vacio y meta como objeto sin properties. Los avisos piden una muestra mas rica.
Draft-07 vs 2020-12
Ambos borradores comparten la misma forma inferida. Draft-07 usa el URI clasico que mas tooling espera. Cambia a 2020-12 si tu stack documenta ese dialecto.
Casos de uso comunes
- Borrador de JSON Schema antes de existir OpenAPI / AsyncAPI
- Validar webhooks (Stripe, GitHub, Slack) en CI con AJV
- Convertir un fixture en contrato para tests
- Arrancar schemas para configs y feature flags
- Emparejar con interfaces TypeScript desde el mismo JSON
Preguntas frecuentes sobre Generador de JSON Schema
- Como genero un JSON Schema desde JSON de muestra?
- Pega una muestra JSON, pon un titulo, elige un draft y copia el schema. La generacion corre en tu navegador. Se recorren objetos y arrays por completo, y las claves ausentes en algunos items se omiten de required.
- Cual es la diferencia entre opcional y nullable?
- Opcional significa que la clave faltaba en algunos items del array, asi que no esta en required. Nullable significa que la clave estaba presente y el valor era JSON null, asi que el type incluye null (por ejemplo type: ["string","null"]). Este generador no los mezcla salvo que la muestra muestre ambos.
- Que borrador de JSON Schema debo usar?
- Draft-07 sigue siendo el mas compatible con validadores y editores. Usa 2020-12 cuando tu tooling espera ese $schema. Las properties inferidas son las mismas.
- Por que items o properties estan vacios?
- Los arrays vacios no tienen elementos que inspeccionar, asi que items es {}. Los objetos vacios no tienen claves, asi que properties esta vacio. Pega un ejemplo con datos para tipos concretos.
- Los format de string son siempre correctos?
- Son heuristicas a partir de la muestra (email, uri, uuid, date, date-time). Revisalos antes de fijar un contrato de produccion.
- Se sube mi JSON?
- No. La generacion solo corre en esta pestana. La muestra no sale de tu navegador.
- En que se diferencia del conversor JSON a TypeScript?
- Ambos recorren el mismo tipo de muestra. Esta pagina emite JSON Schema para validadores y borradores OpenAPI. El conversor TypeScript emite interfaces o type aliases para el codigo. Usa ambos desde el mismo payload si necesitas contrato y clientes tipados.
- additionalProperties: false rechaza claves desconocidas?
- Si dejas Rechazar extras activo, si. Es util para contratos de API estrictos. Cambia a Permitir extras si los clientes pueden enviar campos que aun no viste en la muestra.
Herramientas relacionadas
Convertidor de JSON a interfaz TypeScript
Convertidor gratis de JSON a interfaz TypeScript. Pega un JSON, genera interfaces anidadas o type aliases, y separa claves opcionales de JSON null. Nada se sube.
Minificador y formateador de JSON
Minificador y formateador de JSON online gratis. Minifica JSON para reducir payloads o embellece (pretty-print) JSON con sangría de 2 espacios. Valida mientras escribes: no hace falta subir archivos.
Probador JSONPath
Prueba JSONPath online en tu navegador. Extrae un campo de JSON, prueba un filtro y copia rutas normalizadas - no se sube nada.
Comparador JSON Diff
Diff estructural de JSON gratis en tu navegador. Compara dos documentos por claves y valores - no por orden de lineas. Nada se sube.