Utilo

JSON a tipos

Genera structs de Go, structs de Rust serde, esquemas Zod, modelos Pydantic, data classes de Kotlin, records de Java, clases C#, Swift Codable y tipos TypeScript a partir de JSON. Detecta campos opcionales y anulables en arrays.

Lo que hace este generador de tipos JSON

Escribir clases de modelo a mano para una gran respuesta de API es lento y propenso a errores. Pegar una muestra de JSON y esta herramienta infiere un modelo de tipo completo e imprime como Go estructuras con etiquetas json, Rust estructuras con derivados serde, esquemas Zod, modelos Pydantic, clases de datos Kotlin, registros Java, clases C #, estructuras Swift Codable o interfaces TypeScript. Los objetos anidados se convierten en sus propios tipos nombrados, las matrices de objetos se fusionan para que cada campo visto en cualquier elemento sea capturado, y la inferencia se ejecuta en un trabajador web para que incluso muestras de varios megabytes no congelen la página.

Cómo usarlo

  1. Pegar JSON en la entrada o cargar la muestra.
  2. Establezca el nombre del tipo de raíz, por ejemplo User o OrderResponse.
  3. Seleccione la pestaña del idioma de destino. La salida se regenera al instante.
  4. Copie el código en su proyecto y ajuste los nombres o tipos donde su conocimiento del dominio supera la inferencia.

Cómo funciona la inferencia

  • ** Campos opcionales:** si falta una clave en algunos elementos de una matriz, está marcada como opcional (? en TS, Option<T> en Rust, omitempty en Go, = None en Pydantic).
  • ** Campos anulables:** un valor null hace que el campo sea anulable en el idioma de destino.
  • ** Números:** Los enteros y los flotadores se registran por separado, por lo que 42 se convierte en int64/i64/Long mientras que 4.2 se convierte en un tipo de flotador.
  • ** Tipos mixtos:** cuando el mismo campo contiene diferentes tipos, los lenguajes con uniones (TypeScript, Zod, Pydantic) obtienen una unión, y los demás se reducen a un tipo de valor JSON genérico.
  • Nombramiento: las claves como user_id o created-at se convierten en nombres de campo idiomáticos por idioma, con la clave original preservada en etiquetas o anotaciones (json:"user_id", #[serde(rename)], @SerialName, CodingKeys).

Consejos

  • Alimenta con una muestra representativa. Un solo objeto con una matriz vacía no le dice nada a la herramienta sobre los elementos de la matriz.
  • Combinar varias respuestas en una matriz de nivel superior para capturar campos opcionales de manera confiable.
  • La salida de Zod exporta tanto el esquema como el tipo inferido, por lo que obtiene validación en tiempo de ejecución y escritura estática juntos.

Preguntas frecuentes

¿Mi JSON está cargado en alguna parte?
  • No, no es así. El análisis y la generación de código ocurren en su navegador en un trabajador de fondo.
¿Por qué un campo se escribe como any o interface{}?

Era null en cada muestra, o una matriz vacía, por lo que no se podía inferir ningún tipo concreto. Proporcionar una muestra con un valor real.

¿Trabaja con citas?

JSON no tiene tipo de fecha, por lo que las cadenas ISO permanecen cadenas. Cambiarlos a time.Time, datetime o Date a mano si su decodificador lo admite.

¿Puedo generar el esquema JSON?

Utilice la salida Zod o Pydantic; ambas bibliotecas pueden exportar el esquema JSON directamente.

Sí. Todo el procesamiento se realiza directamente en tu navegador mediante JavaScript, Web Workers y APIs web. Nada de lo que escribes, pegas o subes se envía a nuestros servidores.

Esta página se tradujo automáticamente del inglés. Si encuentras un error, avísanos.