Если вы просто хотите удалить некоторые поля из ответа json, то вы можете сделать это следующим образом:
package main
import (
"fmt"
"encoding/json"
)
type User struct {
Name string `json:"name"`
Password string `json:"-"` . //remove from json
}
func main() {
fmt.Println("Hello, playground")
u := &User{Name:"alpha", Password: "beta"}
b, _ := json.Marshal(u)
fmt.Println(string(b))
}
В некоторых случаях вы можете также создать пользовательский json Marshaller, введя MarshalJSON
вСтруктура пользователя.
Например, чтобы изменить имена полей:
func (u *User) MarshalJSON() ([]byte, error) {
return json.Marshal(&struct {
Name string `json:"name"`
Key string `json:"key"`
}{
Name: u.Name,
Key: u.Password,
})
}