reflectの練習ですね→json2go.go
けっこうこういうのが欲しい人もいるんじゃないかって思って。
だって、JSONを使ったWebのAPIのドキュメントに、リクエスト/レスポンスの例とかがあるでしょう普通? そのAPIをGolangで使おうとなったときに、サンプルのjsonのデータをコピペしてきて、そこから自動でGolangのstructを作って、そのままMarshal/Unmarshalできたら、とても仕事がはかどると思いませんか?
こういうのがないと、最初はinterface{}を使って作っていって、型アサーション地獄に陥ってうーんと思いつつ一念発起structに書き換えて、呼び出し側も書き換えてって…みたいなサイクルになるんですよね。最初からstruct作りを自動化しておけば、APIが変更されたときもラクラク更新していけるっていうわけだ。ドキュメントのサンプルがちゃんとAPI変更に追随してくれてれば、の話だがね。