title: swift: Parsing JSON data from alamofire into Dictionary with Array
body: <p>I have the below <code>JSON</code> response and i want to get the <code>id</code> for the hit objects</p>
  
  <pre><code>{
      "totalHits":500,
      "hits":[
          {
              "largeImageURL":"https://pixabay.com/get/ea32b90a2af3073ed1584d05fb1d4190e070e4d71aac104491f1c270a0eeb7b0_1280.jpg",
              "webformatHeight":426,
              "webformatWidth":640,
              "likes":0,
              "imageWidth":4494,
              "id":3785276,
              "user_id":10546560,
              "views":21,
              "comments":0,
              "pageURL":"https://pixabay.com/en/port-river-liner-sea-cruise-3785276/",
              "imageHeight":2996,
              "webformatURL":"https://pixabay.com/get/ea32b90a2af3073ed1584d05fb1d4190e070e4d71aac104491f1c270a0eeb7b0_640.jpg",
              "type":"photo",
              "previewHeight":99,
              "tags":"port, river, liner",
              "downloads":9,
              "user":"LunevAndrey",
              "favorites":0,
              "imageSize":3306757,
              "previewWidth":150,
              "userImageURL":"",
              "previewURL":"https://cdn.pixabay.com/photo/2018/10/31/06/55/port-3785276_150.jpg"
          }
     ]
  }
  </code></pre>
  
  <p>This is what i have so far,</p>
  
  <pre><code>import UIKit
  import SDWebImage
  
  class Model: NSObject {
      var title : Any!
  
      init (dict :  [String:Any]) {
          self.title = (((dict as AnyObject)["hits"] as! [String:AnyObject])) ["id"] as? Any
  
  
      }
  }
  </code></pre>
  
  <p>And in view controller I have coding as following.</p>
  
  <pre><code>import UIKit
  import Alamofire
  
  
  
  class CollectionView: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {
  
      let url1 = ["URL path string"]
      @IBOutlet weak var collection: UICollectionView!
      var arrList = [Model]()
  
  
      override func viewDidLoad() {
          super.viewDidLoad()
          reequest()
      }
  
      override func viewWillAppear(_ animated: Bool) {
          super.viewWillAppear(true)
          self.collection.reloadData()
  
      }
  
          func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -&gt; Int {
             return arrList.count
  
          }
  
          func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -&gt; UICollectionViewCell {
  
              let cell: firstCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! firstCollectionViewCell
              let objct = arrList[indexPath.row]
              cell.label.text =  objct.title as AnyObject as? String
  
              return cell
          }
  
          func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -&gt; CGSize {
  
               let width = (self.view.frame.size.width - 5  * 3 ) / 2 //some width
               let height = width * 1.34 //ratio
              return CGSize(width: width, height: height)
          }
  
  
      func reequest() {
  
          let url = URL(string: "URL path string")
          Alamofire.request(url!).responseJSON {(response) in
           switch (response.result){
              case .success:
                  if let data = response.result.value{
                      if let arrdata = data as? [[String:Any]]{
  
                          for dataList in arrdata {
                              print(dataList)
                              let obj = Model(dict: dataList)
                              self.arrList.append(obj)
                              self.collection.reloadData()
                          }
                      }
                  }
              case .failure(let error):
                  print("error to print the data \(error)")
              }
          }
      }
  }
  </code></pre>