省略JSON屬性我有一個用戶結構,它具有像密碼敏感字段:golang - 優雅的方式被序列化
type User struct {
UID string `json:"uid" binding:"required"`
Password string `json:"password" binding:"required"`
EmailAddress string `json:"email" binding:"required"`
}
現在我希望能夠利用這個結構來註冊用戶和更新,刪除,但也可以查看。我不想要的是將密碼序列化以供查看。當然,我可以做一個自定義編組,但這是唯一的方法嗎?我嘗試使用json:"-"
選項,但這會導致它在解組時被忽略,這是我不想要的。有沒有更好的辦法?
編輯: 爲了讓你們中的一些人放心,我當然不會以明文存儲密碼。這是密碼的bcrypt散列,但仍然如此。我不希望它在我搜索用戶時返回。
或者你可以使用2個結構體,一個帶有「公共」信息和另一個嵌入公共的「完整」版本,並添加諸如密碼之類的「私人」信息。在查看時,只發送/序列化嵌入式公共結構。例如,請參閱相關問題:[使用另一個結構賦值結構](https://stackoverflow.com/questions/31981592/assign-struct-with-another-struct/31981736#31981736)。 – icza
哦,這可能是最接近你的「優雅」,尤其是現在你可以用不同的標籤來轉換相同的結構。我仍然會在「自定義編組器」下標記它,但它比「JSONMarshaler」實現更簡單。 – JimB