あることからJSONのプロパティを省略するエレガントな方法私は、パスワードなどの機密フィールドを持つユーザー構造体を、持っている:golang - 直列化された
type User struct {
UID string `json:"uid" binding:"required"`
Password string `json:"password" binding:"required"`
EmailAddress string `json:"email" binding:"required"`
}
は今、私が登録し、この構造体を使用することができるようにしたいですユーザーと更新、削除、表示することもできます。私が望まないのは、パスワードをシリアライズして表示することです。私は、もちろん、カスタムマーシャルを作ることができますが、それは唯一の方法ですか?私はjson:"-"
オプションを使ってみましたが、アンマーシャリング中に無視されてしまいました。私は望ましくありません。より良い方法がありますか?
EDIT: 使いやすさであなたたちのいくつかを置くために、私はもちろん、平文でパスワードを保存するつもりはありません。これは、パスワードのbcryptハッシュですが、それでもです。ユーザーを検索するときに返されることは望ましくありません。
2つの構造体を使用できます.1つはpublic情報、もう1つはpublicを埋め込み、パスワードなどのプライベート情報を追加する完全版です。また、表示するときには、埋め込みpublic structのみを送信/シリアル化します。例については、関連する質問を参照してください:[構造体を別の構造体に割り当てる](https://stackoverflow.com/questions/31981592/assign-struct-with-another-struct/31981736#31981736)。 – icza
ああ、これはおそらくあなたが "エレガント"に近づくことができるでしょう。特に異なるタグを使って同じ構造体を変換できるようになりました。私はそれを "custom marshaler"の下に表示しますが、JSONMarshalerの実装よりも簡単です。 – JimB