read and write gzip Golang
func readGzippedJSON(url string) {
f, err := os.Open(url)
if err != nil {
log.Fatal(err)
}
defer f.Close()
gr, err := gzip.NewReader(f)
if err != nil {
log.Fatal(err)
}
defer gr.Close()
dec := json.NewDecoder(gr)
for {
t := &person{}
err := dec.Decode(t)
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", t)
}
}