Entrada JSON

Salida Go

¿Qué es JSON a Go?

Go usa structs para datos estructurados. Al deserializar JSON con encoding/json, necesitas structs con campos y tipos coincidentes. La especificación JSON define objetos, arrays, strings, números y booleanos—pero Go necesita definiciones de struct explícitas para cada objeto anidado. Escribirlas a mano es tedioso y propenso a errores cuando el JSON es grande o complejo.

Esta herramienta genera structs de Go desde tu JSON. Configura el nombre del struct y del package en el panel de configuración. Activa JSON Tags para json:"field_name" para que los campos del struct se mapeen correctamente a claves camelCase o snake_case. Activa punteros para campos opcionales o nullable para distinguir entre valor cero y ausente. La salida está lista para pegar en tu proyecto y usar con json.Unmarshal().

La conversión se ejecuta completamente en tu navegador. Tu JSON nunca se envía a un servidor. Puedes confirmarlo abriendo la pestaña de red de tu navegador.

Cómo usar esta herramienta

1

Pegar o subir JSON

Copia tu JSON y pégalo en el editor izquierdo. También puedes hacer clic en Subir para cargar un archivo .json o .txt. Usa el botón Ejemplo para datos de ejemplo. En el panel de configuración, configura el nombre del struct (ej. User) y del package (ej. models). Activa JSON Tags para tags de struct json:"key". Activa Punteros para campos opcionales o nullable.

2

Revisar los structs generados

El panel derecho muestra los structs de Go generados. Los objetos anidados se convierten en structs anidados o separados. Los arrays se convierten en <code>[]Type</code>. Los JSON tags mapean campos del struct a claves JSON. Usa <code>json.Unmarshal(data, &amp;v)</code> para parsear tu JSON en el struct. Si tu JSON tiene sintaxis inválida, corrígelo primero con el Formateador JSON o el Validador JSON.

3

Copiar o descargar

Usa <strong>Copiar</strong> para poner el resultado en el portapapeles, o <strong>Descargar</strong> para guardarlo como archivo <code>.go</code>. Pégalo en tu proyecto Go. Puede que necesites añadir imports o ajustar nombres de package.

Ejemplos de JSON a Go

Aquí un ejemplo de generación de structs de Go desde un objeto JSON.

Ejemplo: Registro de suscriptor

Entrada JSON:

Entrada

Salida Go generada:

Salida

Cuándo ayuda JSON a Go

La mayoría de desarrolladores necesitan esto al integrar con APIs. Envías una petición a través de Postman o curl, y la respuesta viene como JSON. Pegarlo aquí te da structs tipados para usar con encoding/json. Para extraer valores específicos de respuestas grandes, jq funciona bien desde la línea de comandos.

Los archivos de configuración son otro caso común. Un <code>config.json</code> o <code>settings.json</code> con objetos anidados suele necesitar un struct de Go para acceso type-safe. Si necesitas fusionar dos archivos JSON primero, existe la herramienta Combinar JSON.

Las exportaciones de bases de datos de MongoDB, Firestore o CouchDB son típicamente grandes blobs JSON. Procesarlos aquí ayuda a entender la estructura del documento y generar structs de Go para scripts de importación o consultas.

Preguntas frecuentes

¿Por qué JSON tags?

Los nombres de campos de struct de Go deben ser exportados (capitalizados) para JSON. JSON suele usar camelCase o snake_case. El tag json:"fieldName" mapea el campo del struct a la clave JSON. Activa JSON Tags en la configuración para que los structs generados funcionen correctamente con json.Unmarshal y json.Marshal.

¿Punteros para campos opcionales?

Si un campo JSON puede ser null o faltar, usa *Type para distinguir entre valor cero (ej. string vacío) y ausente. Sin punteros no puedes diferenciar. Activa Usar punteros en la configuración para campos opcionales o nullable.

¿Se envían mis datos a algún sitio?

No. La generación se ejecuta completamente en tu navegador con JavaScript. No se envían datos a ningún servidor. Puedes confirmarlo abriendo la pestaña de red de tu navegador.

¿Qué pasa con omitempty?

Añade omitempty al JSON tag para campos que no quieras en la salida cuando estén vacíos: json:"name,omitempty". Edita la salida si es necesario. El generador no añade omitempty por defecto porque depende de tu caso de uso.

¿Interface{} para JSON dinámico?

Para estructura desconocida o muy variable, usa map[string]interface{} o interface{}. Esta herramienta genera structs tipados para formas conocidas. Si la estructura JSON cambia frecuentemente, puede que prefieras interface{}.

Herramientas relacionadas

Para manejo de JSON en Go, ver encoding/json. Para JSON, ver la especificación JSON y RFC 8259. Para una visión general, ver MDN JSON. Para pruebas de API, ver Postman. Para tags de struct de Go, ver la especificación Go. Ver también jq para procesamiento JSON.