Generar tipos desde ejemplos JSON

Genera declaraciones en TypeScript, Java 17+ o C# 10+ a partir de un valor o de hasta 100 ejemplos.

  • Funciona en tu navegador
  • Sin subir archivos
  • Revisa antes de descargar

Las entradas permanecen en esta pestaña; no se suben ni se guardan automáticamente. Los recuentos agregados de uso y los diagnósticos generales de procesamiento son opcionales y solo se envían con consentimiento, sin contenido ni nombres de archivo. Al borrar o cerrar se pierden las entradas; guarda antes los resultados necesarios.

Formatos y límites

Genera declaraciones en TypeScript, Java 17+ o C# 10+ a partir de un valor o de hasta 100 ejemplos. En el modelo inferido, un campo ausente y un null explícito no son lo mismo. TypeScript usa tipos opcionales y uniones; en Java y C# los indicadores de presencia los debe rellenar quien use el código. No se genera ningún deserializador. El nombre raíz es ASCII de hasta 64 caracteres; los campos, de hasta 256. Las listas vacías quedan con tipo desconocido. El nombre raíz no puede coincidir con identificadores reservados del lenguaje o del framework; en C# tampoco se admite System, porque es el espacio de nombres del framework. Los alias de los miembros evitan el nombre del tipo que los contiene y el de los indicadores de presencia. Los nombres originales del JSON se conservan en los atributos y en el informe del modelo.

Solo UTF-8. Entrada ≤ 1 MiB; XML ≤ 100.000 unidades UTF-16; profundidad ≤ 64; JSON ≤ 20.000 nodos. JSONL ≤ 16 MiB, 100.000 registros y 1 MiB por valor. Salida ≤ 32 MiB. Consultas: 3 s; el resto de tareas: 10 s; se pueden cancelar. Memoria nativa de XSD ≤ 64 MiB; no incluye toda la memoria del proceso ni del DOM.

Cómo usarlo

  1. Elegir origen y modo

    Elige TypeScript, Java o C#, pon nombre al tipo raíz y selecciona una muestra o un array de muestras. Usa registros variados y representativos para que salgan a la luz los campos ausentes, los que admiten null y los heterogéneos.

  2. Configurar parámetros

    El ejemplo cargado, con dos registros, genera la interfaz Example: id:number y name:string son obligatorios; nickname?:null y active?:boolean son opcionales porque cada uno falta en un registro.

  3. Revisar y descargar

    Descarga la declaración de origen y inferred-model.json. Antes de integrarla, comprueba la diferencia entre opcional y null explícito, y cómo se han asignado los nombres de los campos. La herramienta genera declaraciones; no valida datos futuros ni genera un deserializador.

Formatos y límites

¿Por qué se rechaza la entrada o el resultado sale vacío?

El modo de array de muestras necesita entre 1 y 100 valores. Los nombres raíz empiezan por una letra ASCII y solo contienen letras, dígitos o guion bajo, con un máximo de 64 caracteres. Un array vacío no aporta ninguna pista sobre el tipo de sus elementos.

¿Qué perfil de analizador y qué límites se aplican?

Es una inferencia basada en muestras, no una garantía de esquema. Los resultados para Java 17+ y C# 10+ pueden necesitar indicadores de presencia gestionados por quien los llama; revisa sus comentarios. Si el analizador numérico rechaza la precisión de un identificador grande, ese identificador debe ir como cadena JSON entre comillas.

¿Se envían a un servidor la entrada o los archivos a los que hace referencia?

El análisis se ejecuta en local, en un worker del navegador. Las URL que aparezcan en la entrada no descargan documentos remotos. Aporta como archivos locales las dependencias de esquema que sean compatibles, conserva aparte tu fuente y descarga los resultados antes de cerrar la página.