golang – 优雅的方式来省略json属性被序列化
发布时间:2020-12-16 09:22:41 所属栏目:大数据 来源:网络整理
导读:我有一个用户结构,它有敏感字段,如密码: type User struct { UID string `json:"uid" binding:"required"` Password string `json:"password" binding:"required"` EmailAddress string `json:"email" binding:"required"`} 现在我希望能够使用此结构来注册
我有一个用户结构,它有敏感字段,如密码:
type User struct { UID string `json:"uid" binding:"required"` Password string `json:"password" binding:"required"` EmailAddress string `json:"email" binding:"required"` } 现在我希望能够使用此结构来注册用户并更新,删除以及查看.我不想要的是密码被序列化以供查看.当然,我可以制作一个定制的编组,但这是唯一的方法吗?我尝试使用json:“ – ”选项,但这会导致它在解组时被忽略,这是我不想要的.有没有更好的办法? 编辑: 解决方法
我想说实现json.Marshaler是一个优雅的解决方案,如果你想要自定义封送.在这种情况下,这很简单:
func (u User) MarshalJSON() ([]byte,error) { type user User // prevent recursion x := user(u) x.Password = "" return json.Marshal(x) } 如果在编组时根本不想要密码字段,请在用户类型中添加“omitempty”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |