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!
<<>>