Aportar variantes representativas
Agrupa registros de la misma forma de respuesta en un array. Los objetos en propiedades distintas mantienen tipos separados, aunque tengan una estructura parecida.
Generación de tipos
Compara los dos registros de ejemplo. La salida incluye la declaración del paquete y los imports necesarios.
Análisis y generación en este navegador. Los datos no se envían ni se guardan.
3 declaraciones · 2 tipos puntero
JSON a Go crea un borrador de modelo desde respuestas API. Incluye varios registros en un array para descubrir campos ausentes, valores null y cambios de tipo.
Las muestras no definen campos obligatorios ni reglas de negocio. Revisa la salida con el contrato de la API y prueba la decodificación en tu proyecto.
JSON a Go examina todos los elementos en la misma posición del array. Un campo que solo aparece en el segundo registro también se incluye. Un tipo conocido con null o ausencia puede convertirse en puntero.
Los enteros simples dentro de int64 usan int64. Decimales, exponentes y enteros mayores usan json.Number, sin pasar primero por la representación de coma flotante de JavaScript.
Agrupa registros de la misma forma de respuesta en un array. Los objetos en propiedades distintas mantienen tipos separados, aunque tengan una estructura parecida.
Desactiva las fechas si necesitas conservar el texto exacto. Sin nombres anidados se generan structs anónimos. Desactivar tags json elimina la correspondencia con las claves originales.
El modo automático espera 350 ms tras editar. Desactívalo para mostrar Generar o pulsa Ctrl/Cmd+Enter. Los cambios bloquean copiar y descargar hasta que se genera un resultado actualizado.
Este generador de structs convierte snake_case y camelCase en nombres ASCII exportados. Conserva siglas como ID y resuelve colisiones con sufijos numéricos estables. Las etiquetas activadas mantienen las claves originales admitidas.
Un escalar o Go Struct conocido recibe un puntero si falta o contiene null en alguna muestra. Los slices y maps ya admiten nil. Un campo siempre null usa any; un puntero no distingue ausencia de null explícito.
Solo los enteros simples dentro del rango de 64 bits con signo usan int64. Incluso 1.0 y 1e3 usan json.Number, ya que encoding/json no decodifica esas formas directamente como enteros. Comprueba los errores de conversión antes de calcular.
Los valores RFC3339 completos y válidos con hasta nueve cifras de fracción pueden usar time.Time. Todas las cadenas no null de esa posición deben cumplirlo. Los alias en la raíz conservan los métodos del tipo original.
Se combinan todas las muestras de la misma posición. Los valores compatibles dan un tipo concreto; las diferencias incompatibles dan any. Los números simples dentro de int64 usan ese tipo y las demás formas usan json.Number.
Conectan los nombres exportados con las claves originales admitidas. Sin ellas, encoding/json busca por el nombre del campo y la correspondencia puede cambiar. Las claves no representables se rechazan cuando las etiquetas están activas.
Permiten distinguir nil de un cero concreto en escalares y structs conocidos. No distinguen un campo ausente de un null explícito. Si desactivas los punteros, debes aceptar la semántica de valores cero.
Las variantes incompatibles producen any. JSON a Go examina todos los elementos, por lo que un cambio en el último registro también cuenta. Configura Decoder.UseNumber() si aparecen números en esas posiciones genéricas.
Los nombres comienzan con mayúscula ASCII y conservan siglas habituales como ID. Las colisiones reciben un sufijo numérico. Revisa los nombres de dominio después de generar el borrador.
¿Hay un caso de inferencia que mejorar?
Usa JSON a Go con varios registros y revisa punteros, tipos numéricos y fechas antes de exportar el archivo para tu proyecto.