title: Issue with JSON decoding in Swift (data missing)
body: <p>I'm trying to query the NASA image API (<a href="https://images.nasa.gov/docs/images.nasa.gov_api_docs.pdf" rel="nofollow noreferrer">latest docs here</a>) using Swift 4. I set up and tested my request with <a href="https://jsonplaceholder.typicode.com" rel="nofollow noreferrer">JSONPlaceholder</a> to make sure my network request and decoding was setup correctly. Everything was working fine, but when I switched the URL and corresponding JSON data structure, I get an error saying 'the data couldn't be read because it is missing.'</p>
  
  <p>I've used Postman to verify that JSON is being returned, and to build the JSON data structure.</p>
  
  <p>Is this a common error from decoding JSON or is it something with the network request? Or am I missing something with using the NASA API?</p>
  
  <pre><code>let NASAURL = URL(string: "https://images-api.nasa.gov/search?q=moon")
      let session = URLSession(configuration: .default)
      let task = session.dataTask(with: NASAURL!) { (rdata, response, error) in
          NSLog("Data Description: " + (rdata!.debugDescription) + "\nResponse: " + response.debugDescription + "\nError Description: " + error.debugDescription)
  
          guard rdata != nil else{
              NSLog("No data")
              return
          }
          guard error == nil else{
              NSLog(response.debugDescription + "\n")
              NSLog(error.debugDescription)
              NSLog(error.debugDescription)
              return
          }
          let decoder = JSONDecoder()
          do{
              NSLog(rdata.debugDescription)
              let usr = try decoder.decode(Collect.self, from: rdata!) // Throws
              NSLog(usr.href)
  
          } catch {
              NSLog("Error: " + error.localizedDescription)
          }
      }
      task.resume()
  
  // Collect is in its own class/file
  struct Collect: Codable {
      var href: String
      //var items: [Items]
  }
  </code></pre>
  
  <p>Below is the printout from the above log statements...</p>
  
  <pre><code>2017-09-29 19:50:24.135288-0500 OpenNASA[16993:10774203] Data Description: 67669 bytes
  Response: Optional(&lt;NSHTTPURLResponse: 0x60000003db00&gt; { URL: https://images-api.nasa.gov/search?q=moon } { status code: 200, headers {
      "Access-Control-Allow-Origin" = "*";
      "Cache-Control" = "public, max-age=300, s-maxage=600";
      "Content-Encoding" = gzip;
      "Content-Length" = 9334;
      "Content-Type" = "application/json; charset=UTF-8";
      Date = "Sat, 30 Sep 2017 00:48:11 GMT";
      Server = "nginx/1.4.6 (Ubuntu)";
      "Strict-Transport-Security" = "max-age=31536000";
      Vary = "Accept-Encoding";
      "access-control-allow-headers" = "Origin,Content-Type,Accept,Authorization,X-Requested-With";
      "access-control-allow-methods" = GET;
  } })
  Error Description: nil
  2017-09-29 19:50:24.137324-0500 OpenNASA[16993:10774203] Optional(67669 bytes)
  2017-09-29 19:56:01.843750-0500 OpenNASA[16993:10774203] Error: The data couldn’t be read because it is missing.
  </code></pre>