Piszę obiekt użytkownika JSON do mojej aplikacji Golang, w której dekoduję element "req.body" w strukturze "User".Zatwierdź pole struct, jeśli istnieje
err := json.NewDecoder(req.Body).Decode(user)
//handle err if there is one
i „Użytkownik” struct:
type User struct {
Name string `json:"name,omitempty"`
Username string `json:"username,omitempty"`
Email string `json:"email,omitempty"`
Town string `json:"town,omitempty"`
//more fields here
}
Chociaż nie potrzebują pomocy z rzeczywistym walidacji, chciałbym wiedzieć, jak sprawdzić poprawność nazwy użytkownika tylko wtedy, gdy jest włączone jako część Obiekt JSON. W tej chwili, jeśli nazwa użytkownika nie jest wliczone następnie User.Username
będzie nadal istnieć, ale być pusta tj ""
Jak mogę sprawdzić, czy „«username»” została włączona jako część Wysłany obiektu?
Nie jestem pewien, czy rozumiem, dlaczego nie sprawdzić 'If Len (user.username) == 0 {NOUSERNAME (); } '? – OneOfOne
Jeśli obiekt użytkownika zostanie opublikowany bez 'nazwa_użytkownika', wtedy' len (nazwa użytkownika.użytkownika) będzie nadal równy 0. Chcę warunkowo sprawdzić poprawność - to znaczy chcę sprawdzić poprawność nazwy użytkownika tylko, jeśli była ona zawarta w obiekcie POST. Przepraszam, jeśli to nie jest jasne! – tommyd456
Potrzebuję więc móc rozróżnić obiekt użytkownika niż zawiera nazwę użytkownika o wartości "" "(np. Zapomniałem nazwy użytkownika) i obiekt użytkownika bez nazwy użytkownika. – tommyd456