INACTIVEという定数にマッピングしたい。1,2以外の数値が来たらエラーにしたい。statusフィールドがないときもエラーにしたい。User構造体を受け取ってバリデーションをする関数を作ってもよいが、以下のようにStatus型を新しく作り、それにUnmarshallerインターフェースを実装させるとグッとスマートにできる。error}JSONのUnmarshalをする際、マッピング対象のフィールドにUnmarshallerインターフェースを実装したものがあると、そのフィールドへのマッピングの際に自動的に実装されたUnmarshalJSONメソッドが呼ばれるようになる。Status型にこのUnmarshallerインターフェースを実装することで、User型がUnmarshalされる際に自動でStatus型に実装された任意のマッピング処理およびバリデーション(!)行えるようになるというわけだ。Unmarshallerインターフェースを用いて要件を実装したStatus型は以下になる。}上のJSONをマッピングするとどういう挙動になるかというと以下のようになる。Status:0}}つまりint型の初期値である0が代入される。ようなレシーバメソッドを生やして、仮にUnmarshalが成功したとしても、必ず直後にIsEmptyを事前条件チェックとして呼ぶようにしているが、若干微妙ではある。user)}本当はUnmarshalJSONメソッドの中でどうにかしたいが、Unmarshal対象のフィールドがない場合には当たり前だが呼ばれない。ここはちょっと苦しい。(8)はてなブログをはじめよう!IzumiSyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。