JSON a Go
Genera structs de Go con etiquetas JSON a partir de JSON
Pega JSON o carga un ejemplo para generar código Go.
Qué genera JSON a Go
JSON a Go convierte una respuesta de API o cualquier muestra JSON en definiciones de struct de Go listas para encoding/json. Cada campo exportado lleva una etiqueta json:"key", así que los campos renombrados se siguen decodificando. Las claves que una etiqueta de struct no puede expresar (claves vacías, comillas, comas o símbolos como emojis) se excluyen con json:"-" y se enumeran en las notas, en lugar de mapearse en silencio a un nombre incorrecto.
Cómo usarlo
- 1.Pega JSON, sube o suelta un archivo .json, o carga uno de los ejemplos.
- 2.Define el nombre del struct raíz y el paquete (main por defecto).
- 3.Activa o desactiva los punteros y omitempty; en Avanzado puedes poner en línea los structs anidados.
- 4.Lee las notas bajo la salida y luego copia el código o descarga models.go.
Cómo se infieren los tipos
- •Se revisan todos los elementos de cada array, no solo el primero, y los objetos del mismo array se combinan.
- •Una clave que falta en algunos objetos es opcional; una clave que a veces es null es anulable. Ambos casos se distinguen.
- •1 y 2.5 en la misma posición se amplían a número decimal; las demás mezclas se notifican.
- •Los arrays vacíos y los valores que solo son null no aportan información de tipo, así que se usa un tipo genérico y una nota explica el motivo.
- •Correspondencia de tipos: cadena → string, entero → int64 (uint64 o json.Number más allá), decimal → float64, booleano → bool, array → []T, objeto → struct, desconocido o mixto → any.
- •Con los punteros activados, los escalares y structs anulables u opcionales pasan a *T; los slices y any nunca son punteros porque ya tienen un valor nil.
omitempty, límites y privacidad
omitempty se añade solo a los campos que faltaban o eran null en la muestra. Al codificar también descarta valores cero como 0, "" y false, así que no equivale a "opcional". Una muestra refleja cómo eran los datos en un momento, no el contrato completo de la API. Revisa los campos opcionales, los tipos genéricos y el tamaño de los números antes de confiar en el código. La entrada se limita a 5 MB y 256 niveles de anidación; a partir de 2 MB, la generación espera al botón Generar. Todo se ejecuta en tu navegador y el JSON nunca se sube.
