title: Golang :How to parse/unmarshal/decode a json array API response?
body: <p>I am trying to parse the response from Wikipedia's API located at <code>https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia.org/all-access/all-agents/Smithsonian_Institution/daily/20160101/20170101</code> into an array of structs of which I will proceed to print out the view count</p>
  
  <p>However, the code that I have tried to implement in order to achieve this returns nothing in the terminal when I build and run it?</p>
  
  <p>The code I am failing to succeed with is as follows.</p>
  
  <pre><code>   type Post struct {
      Project string `json:"project"`
      Article string `json:"article"`
      Granularity string `json:"granularity"`
      Timestamp string `json:"timestamp"`
      Access string `json:"access"`
      Agent string `json:"agent"`
      Views int `json:"views"`
  }
  
  func main(){
      //The name of the wikipedia post
      postName := "Smithsonian_Institution"
  
      //The frequency of
      period := "daily"
  
      //When to start the selection
      startDate := "20160101"
  
      //When to end the selection
      endDate := "20170101"
  
      url := fmt.Sprintf("https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia.org/all-access/all-agents/%s/%s/%s/%s", postName, period, startDate, endDate)
  
      //Get from URL
      req, err := http.Get(url)
      if err != nil{
          return
      }
      defer req.Body.Close()
  
      var posts []Post
  
      body, err := ioutil.ReadAll(req.Body)
      if err != nil {
          panic(err.Error())
      }
  
      json.Unmarshal(body, &amp;posts)
  
      // Loop over structs and display the respective views.
      for p := range posts {
          fmt.Printf("Views = %v", posts[p].Views)
          fmt.Println()
      }
  
  }
  </code></pre>
  
  <p>What is the optimal method of receiving a json response from a API such as the one mentioned above and thereafter parsing that array into an array of structs, which can then be inserted into a datastore or printed out accordingly.</p>
  
  <p>Thanks</p>