Avatar ·

json.Marshal(struct) retorna JSON vazio "{}": como corrigir?

Olá a todos! Sou novo em Go e encontrei um problema estranho ao trabalhar com JSON. Tenho uma struct, preencho com dados, tento serializar para JSON usando `json.Marshal()`, mas na saída recebo apenas chaves vazias `{}`. Aqui está meu código:\n\n```go\npackage main\n\nimport (\n\t"encoding/json"\n\t"fmt"\n)\n\ntype User struct {\n\tName string\n\tAge int\n}\n\nfunc main() {\n\tu := User{"Alice", 30}\n\tresult, err := json.Marshal(u)\n\tif err != nil {\n\t\tfmt.Println("Error:", err)\n\t\treturn\n\t}\n\tfmt.Println(string(result)) // Exibe: {}\n}\n```\n\nEu esperava ver `{"Name":"Alice","Age":30}`, mas vejo apenas `{}`. Não há erro, mas os dados são perdidos. O que estou fazendo de errado? Verifiquei que a struct está preenchida corretamente — se eu imprimir os campos com `fmt.Println(u.Name, u.Age)`, eles