Cómo hacer que JSON Marshal en Go genere claves en minúsculas
¡Hola a todos! Estoy escribiendo mi primera API REST en Go y me encontré con un problema: al serializar una estructura a JSON mediante `json.Marshal`, todos los campos se muestran con mayúsculas porque en Go los campos exportados comienzan con mayúscula. Por ejemplo:
```go
type User struct {
Name string
Email string
Age int
}
func main() {
u := User{"Iván", "ivan@example.com", 30}
data, _ := json.Marshal(u)
fmt.Println(string(data))
// Salida: {"Name":"Iván","Email":"ivan@example.com","Age":30}
}
```
Pero en el frontend (React) todos esperan claves en camelCase o snake_case: `name`, `email`, `age`. Intenté escribir mi propio marshaler, pero es demasiado engorroso para un proyecto con 20+ estructuras.
Leí sobre las etiquetas `json:"name"`, pero escribirlas manualmente para cada campo es un infierno, especialmente si hay muchos campos. ¿Hay alguna forma de convertir automáticamente todas las claves a minúsculas? ¿O al menos cómo usar las etiquetas correctamente para no volverse loco?
Por favor, indíquenme.