As a Go newbie it's difficult for me to pinpoint the problem area, but hopefully giving you some facts will help.

I'm playing with an API which returns its `Content-Encoding` as gzip. I have written the following to encode my response struct:

```
reader, err = gzip.NewReader(resp.Body)
defer reader.Close()

// print to standard out
//_, err = io.Copy(os.Stdout, reader)
//if err != nil {
//  log.Fatal(err)
//}

// Decode the response into our tescoResponse struct
var response TescoResponse
err := json.NewDecoder(reader).Decode(&response)

```

I've removed the error handling for brevity, but the point of interest is that if I uncomment the print to stdout, I get the expected result. However, the decode doesn't give me what I expect. Any pointers? Is it that the struct has to map exactly to the response??

Here's the full example:
<https://play.golang.org/p/4eCuXxXm3T>