APIのレスポンスのjsonが決まっていてそれをGoのstructにUnmarshalするときは,structのタグをいちいちjsonのフィールド名に合わせてjson:"hoge"と書いてやらないといけません。

jsonからgoのstructに変換してくれないかなーと探したらありました。

https://mholt.github.io/json-to-go/

試しにGoogle Trendのresponseを食わせてみます。

階層を持ったjsonは正しくパースしてくれないようです。がシンプルでかなり便利ですね。

githubを見るとjavascriptだけで作られており結構ナイーブな実装されていることがわかります。

https://github.com/mholt/json-to-go

このソース読んでて思い出したんですがgo lintでIdとかUrlとか大文字で書かせるのってべた書きで定義してあるんですよね。まぁそりゃそうなんですが。

(参考) https://github.com/golang/lint/blob/39d15d55e9777df34cdffde4f406ab27fd2e60c0/lint.go#L695-L731