Avatar ·

json.Marshal(struct) devuelve JSON vacío "{}": ¿cómo solucionarlo?

¡Hola a todos! Soy nuevo en Go y me encontré con un problema extraño al trabajar con JSON. Tengo una estructura, la lleno con datos, intento serializar a JSON usando `json.Marshal()`, pero obtengo solo llaves vacías `{}`. Aquí está mi código: ```go package main import ( "encoding/json" "fmt" ) type User struct { Name string Age int } func main() { u := User{"Alice", 30} result, err := json.Marshal(u) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(result)) // Muestra: {} } ``` Esperaba ver `{"Name":"Alice","Age":30}`, pero veo solo `{}`. No hay error, pero los datos se pierden. ¿Qué estoy haciendo mal? Verifiqué que la estructura está llena correctamente — si imprimo los campos con `fmt.Println(u.Name, u.Age)`, se muestran correctamente. El problema está específicamente en el marshaling. Por favor, indíquenme de qué se trata. Uso Go 1.21 en Windows. ¡Gracias de antemano! <<>>

Por qué json.Marshal() devuelve vacío