Skip to main content
Volver a herramientas

JSON to Go Struct

Genera structs de Go con json tags a partir de un objeto JSON

Acerca de JSON to Go Struct

Construye structs de Go con json tags a partir de una muestra JSON: una struct Root más una struct por cada objeto anidado, con las claves convertidas a nombres de campo en PascalCase. Los valores null se convierten en interface{}, los arrays vacíos en []interface{} y un array en el nivel superior agrega además el tipo slice RootList. Los campos se separan con un solo espacio en lugar de alinearse, así que ejecuta gofmt sobre el resultado.

Categoría: Conversores.

Preguntas frecuentes

¿Qué son las struct tags de JSON?

▾

Las struct tags de Go (por ejemplo, `json:"name"`) le indican al paquete encoding/json qué clave JSON corresponde a cada campo de la struct durante Marshal y Unmarshal.

¿Cómo se manejan los objetos anidados?

▾

Cada objeto anidado genera su propia struct, con el nombre de su clave en PascalCase (address pasa a ser Address), y el campo padre usa ese tipo. Los arrays se tipan según su primer elemento, así que un array de objetos se convierte en un slice como []Items. Los objetos guardados bajo el mismo nombre de clave comparten una struct creada a partir de la primera aparición, así que revísala si sus formas difieren.

¿Cuándo se usa float64 vs int?

▾

Si el número de muestra no tiene parte decimal, el convertidor genera int. Si tiene parte fraccional, genera float64. Ajusta a int64 o float32 según lo necesites.

¿Cómo deserializo JSON en la struct?

▾

Usa json.Unmarshal([]byte(jsonStr), &root) o json.NewDecoder(r.Body).Decode(&root) — las struct tags generadas conectan todo automáticamente.

Herramientas relacionadas