go - 省略结构如何归档
问题描述
如何省略 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",
})
解决方案
- 添加新结构而不是描述所需的结构
type LoginFormResponse struct {
Login string `json:"name"`
Password string `json:"-"`
}
- 兑换
return c.JSON(http.StatusOK, map[string]interface{}{
"user": LoginFormResponse(*data),
"token": "slkdfj",
})
推荐阅读
- javascript - 在nestjs中使用类验证器验证可选参数?
- linux - VSCode 远程 Python 虚拟环境
- asp.net - Visual Studio 2019 右键单击 WebForms 缺少 Go To Definition
- android - java.lang.NoClassDefFoundError:解析失败:Ldji/common/flightcontroller/CompassCalibrationState
- php - 每个循环PHP的多输入和多列
- ibm-cloud - IBM Watson Assistant:如何解决 web_action 错误“内部错误:无法检索内容类型。”
- ios - Firebase 配置问题:Firebase Analytics 不可用
- typescript - 如何在 Jest 的 globalSetup 函数中使用模块导入 (@) 和 TypeScript?
- html - 随后在 CSS 中选择子元素
- java - 我可以得到任何注释值,没有注释的名称吗?