JSON a Go

Genera structs de Go con etiquetas JSON a partir de JSON

JSON de entrada

Opciones

Modelo
Serialización
Avanzado

Salida Go

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. 1.Pega JSON, sube o suelta un archivo .json, o carga uno de los ejemplos.
  2. 2.Define el nombre del struct raíz y el paquete (main por defecto).
  3. 3.Activa o desactiva los punteros y omitempty; en Avanzado puedes poner en línea los structs anidados.
  4. 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.

CodingTool ya está oficialmente disponible en

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch