Wie man JSON Marshal in Go dazu bringt, Schlüssel in Kleinbuchstaben auszugeben?
Hallo zusammen! Ich schreibe meine erste REST API in Go und bin auf ein Problem gestoßen: Bei der Serialisierung einer Struktur in JSON über `json.Marshal` werden alle Felder mit Großbuchstaben ausgegeben, weil exportierte Felder in Go mit einem Großbuchstaben beginnen. Zum Beispiel:
```go
type User struct {
Name string
Email string
Age int
}
func main() {
u := User{"Ivan", "ivan@example.com", 30}
data, _ := json.Marshal(u)
fmt.Println(string(data))
// Ausgabe: {"Name":"Ivan","Email":"ivan@example.com","Age":30}
}
```
Aber im Frontend (React) erwartet jeder Schlüssel in camelCase oder snake_case: `name`, `email`, `age`. Ich habe versucht, einen eigenen Marshaller zu schreiben, aber das ist zu umständlich für ein Projekt mit 20+ Strukturen.
Ich habe von `json:"name"` Tags gelesen, aber sie manuell für jedes Feld zu setzen ist die Hölle, besonders wenn es viele Felder gibt. Gibt es eine Möglichkeit, automatisch alle Schlüssel in Kleinbuchstaben umzuwandeln? Oder zumindest, wie man Tags richtig verwendet, ohne verrückt zu werden?
Bitte helft mir!