ちょっとやり方が分からなくて調べたのでメモ。 例題 type hoge struct { Foo int `json:"foo"` Bar baz `json:"bar"` } type baz interface { hoge() } type fuga struct { Fuga string `json:"fuga"` } func (*fuga) hoge() {} という感じで "foo" は int に固定されているけど "bar" は baz interface というのだけ定義されている hoge struct がある。 baz interface を正しく実装している fuga structを使ってその要素を持つJSONをhoge structにunmarshalしたい。とする。 func main() { str := `{"foo":3,"bar":{"fuga":"