首页 > 解决方案 > 省略结构如何归档

问题描述

如何省略 struct 字段,在我的情况下,我登录用户并返回包含用户数据和令牌的响应,但在这种情况下,我需要删除密码字段,我该怎么做?

type LoginFormData struct {
    Login    string `json:"name"`
    Password string `json:"password"`
}

data := new(LoginFormData)

if err := c.Bind(data); err != nil {
    return err
}

userData := data // omit password field

        return c.JSON(http.StatusOK, map[string]interface{}{
            "user": struct {
                Password string `json:"-"`
                *LoginFormData
            }{
                LoginFormData: userData,
                Password:      userData.Password,
            },
            "token": "slkdfj",
        })

标签: gogo-echo

解决方案


  1. 添加新结构而不是描述所需的结构
type LoginFormResponse struct {
    Login    string `json:"name"`
    Password string `json:"-"`
}
  1. 兑换
return c.JSON(http.StatusOK, map[string]interface{}{
            "user":  LoginFormResponse(*data),
            "token": "slkdfj",
        })

推荐阅读