Avatar ·

Como retornar JSON corretamente em Go: guia completo com exemplos

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema: preciso escrever um servidor HTTP simples que, em uma requisição GET para o endpoint /api/user, retorne um JSON com os dados do usuário. Li que Go tem o pacote nativo encoding/json, mas não consigo entender como serializar corretamente uma struct para JSON e enviá-la na resposta. \n\nTentei fazer assim:\n\n```go\npackage main\n\nimport (\n "fmt"\n "net/http"\n)\n\ntype User struct {\n Name string\n Age int\n}\n\nfunc userHandler(w http.ResponseWriter, r *http.Request) {\n user := User{Name: "Anna", Age: 28}\n fmt.Fprintf(w, "%v", user) \n}\n\nfunc main() {\n http.HandleFunc("/api/user", userHandler)\n http.ListenAndServe(":8080", nil)\n}\n```\n\nMas a resposta retorna algo como `{Anna 28}`, e não `{"Name":"Anna"