Cómo devolver JSON correctamente en Go: guía completa con ejemplos
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema: necesito escribir un servidor HTTP simple que en una solicitud GET a la ruta /api/user devuelva JSON con los datos del usuario. Leí que Go tiene el paquete integrado encoding/json, pero no puedo entender cómo serializar correctamente una estructura a JSON y enviarla en la respuesta.
Intenté hacerlo así:
package main
import (
"fmt"
"net/http"
)
type User struct {
Name string
Age int
}
func userHandler(w http.ResponseWriter, r *http.Request) {
user := User{Name: "Анна", Age: 28}
fmt.Fprintf(w, "%v", user)
}
func main() {
http.HandleFunc("/api/user", userHandler)
http.ListenAndServe(":8080", nil)
}
Pero en la respuesta obtengo algo como {Анна 28}, no {"Name":"Анна","Age":28}. ¿Cómo puedo marshaller correctamente la estructura a JSON y establecer el encabezado Content-Type adecuado? ¿Necesito manejar errores? ¿Y qué hacer si quiero que los campos se llamen en camelCase?