昨日以下のエントリを書きましたが json.Unmarshal
versionで書いていたので stream でレスポンスを扱う方も追加で記載します。
streamを使うパターン
func HogeSetter(url string, out interface{}) error { resp, err := http.Get(url) if err != nil { return err } if err := json.NewDecoder(resp).Decode(out); err != nil { return err } return nil }
なぜstreamを使うかというのは以下の記事が参考になると思います。
bytes.NewReader(b []byte)
エントリの趣旨とは関係ないですが、Go Playgroundは net/http
が使えないのでこういった streamを扱うときに io.Reader を作る必要があるのですが、いつも忘れるので備忘録で記載します。
bytes.NewReader(b []byte)
-> https://golang.org/pkg/bytes/#NewReader を使います。
使って書いてみたケース -> https://play.golang.org/p/g2Bl_Zoxq7N