title: How to parse json with Alamofire in Swift 5
body: <p>I'm new in iOS programming language and I'm trying to fetch data from a WordPress JSON into a table view. I'm encountering the error: </p>
  
  <blockquote>
    <p>value of type 'Any' has no subscripts</p>
  </blockquote>
  
  <p>when I try to instantiate the object of the array.</p>
  
  <p>Here is the JSON:</p>
  
  <pre><code>[
   {
      "id": 1352,
      "date": "2019-10-16T09:30:39",
      "date_gmt": "2019-10-16T09:30:39",
      "guid": {
          "rendered": "https://wepress.comm-it.it/ddjhgtr/"
      },
      "modified": "2019-10-16T13:23:41",
      "modified_gmt": "2019-10-16T13:23:41",
      "slug": "ddjhgtr",
      "status": "publish",
      "type": "post",
      "link": "https://wepress.comm-it.it/ddjhgtr/",
      "title": "ddjhgtr",
      "content": "eryyreytyvggjggvhghhh",
      "excerpt": "eryyreyty",
      "author": 2,
      "featured_media": {
          "id": 1418,
          "url": "https://wepress.comm-it.it/wp-content/uploads/2019/10/10-62.jpeg"
      },
      "comment_status": "open",
      "ping_status": "open",
      "sticky": false,
      "template": "",
      "format": "standard",
      "meta": [],
      "categories": [
          {
              "id": 1,
              "name": "Uncategorized",
              "description": ""
          }
      ],
      "tags": [],
      "_links": {
          "self": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts/1352"
              }
          ],
          "collection": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts"
              }
          ],
          "about": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/types/post"
              }
          ],
          "author": [
              {
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/users/2"
              }
          ],
          "replies": [
              {
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/comments?post=1352"
              }
          ],
          "version-history": [
              {
                  "count": 3,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts/1352/revisions"
              }
          ],
          "predecessor-version": [
              {
                  "id": 1419,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts/1352/revisions/1419"
              }
          ],
          "wp:featuredmedia": [
              {
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/media/1418"
              }
          ],
          "wp:attachment": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/media?parent=1352"
              }
          ],
          "wp:term": [
              {
                  "taxonomy": "category",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/categories?post=1352"
              },
              {
                  "taxonomy": "post_tag",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/tags?post=1352"
              },
              {
                  "taxonomy": "difficulty-level-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/difficulty-level-course?post=1352"
              },
              {
                  "taxonomy": "category-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/category-course?post=1352"
              },
              {
                  "taxonomy": "location-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/location-course?post=1352"
              },
              {
                  "taxonomy": "duration-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/duration-course?post=1352"
              }
          ],
          "curies": [
              {
                  "name": "wp",
                  "href": "https://api.w.org/{rel}",
                  "templated": true
              }
          ]
      }
   },
  </code></pre>
  
  <p>....(many other News objects)</p>
  
  <pre><code>{
      "id": 774,
      "date": "2019-10-07T07:30:51",
      "date_gmt": "2019-10-07T07:30:51",
      "guid": {
          "rendered": "https://wepress.comm-it.it/name-here/"
      },
      "modified": "2019-10-07T07:30:51",
      "modified_gmt": "2019-10-07T07:30:51",
      "slug": "name-here",
      "status": "publish",
      "type": "post",
      "link": "https://wepress.comm-it.it/name-here/",
      "title": "name here",
      "content": "desc here",
      "excerpt": "desc here",
      "author": 2,
      "featured_media": null,
      "comment_status": "open",
      "ping_status": "open",
      "sticky": false,
      "template": "",
      "format": "standard",
      "meta": [],
      "categories": [
          {
              "id": 1,
              "name": "Uncategorized",
              "description": ""
          }
      ],
      "tags": [],
      "_links": {
          "self": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts/774"
              }
          ],
          "collection": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts"
              }
          ],
          "about": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/types/post"
              }
          ],
          "author": [
              {
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/users/2"
              }
          ],
          "replies": [
              {
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/comments?post=774"
              }
          ],
          "version-history": [
              {
                  "count": 0,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/posts/774/revisions"
              }
          ],
          "wp:attachment": [
              {
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/media?parent=774"
              }
          ],
          "wp:term": [
              {
                  "taxonomy": "category",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/categories?post=774"
              },
              {
                  "taxonomy": "post_tag",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/tags?post=774"
              },
              {
                  "taxonomy": "difficulty-level-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/difficulty-level-course?post=774"
              },
              {
                  "taxonomy": "category-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/category-course?post=774"
              },
              {
                  "taxonomy": "location-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/location-course?post=774"
              },
              {
                  "taxonomy": "duration-course",
                  "embeddable": true,
                  "href": "https://wepress.comm-it.it/wp-json/wp/v2/duration-course?post=774"
              }
          ],
          "curies": [
              {
                  "name": "wp",
                  "href": "https://api.w.org/{rel}",
                  "templated": true
              }
          ]
        }
    }
  ]
  </code></pre>
  
  <p>For the moment I'm interested to get just the image (<code>featured_media</code>), title and content of these "objects" and put them into the <code>tableView</code>. Indeed here are the structs that I created for them:</p>
  
  <p>The news represents the struct contained into the JSON array</p>
  
  <pre class="lang-swift prettyprint-override"><code>struct News {
      public var id: Int
      public var title: String
      public var content: String
      public var image: FeaturedMedia
  }
  </code></pre>
  
  <pre class="lang-swift prettyprint-override"><code>struct FeaturedMedia {
      public var id: Int
      public var url: String
  }
  </code></pre>
  
  <p>Here is the <code>UITableViewCell</code> class:</p>
  
  <pre class="lang-swift prettyprint-override"><code>import UIKit
  
  class NewsTableViewCell: UITableViewCell {
      @IBOutlet weak var newsImage: UIImageView!
      @IBOutlet weak var newsTitle: UILabel!
      @IBOutlet weak var newsContent: UILabel!
  
      override func awakeFromNib() {
          super.awakeFromNib()
      }
  
      override func setSelected(_ selected: Bool, animated: Bool) {
          super.setSelected(selected, animated: animated)
      }
  }
  </code></pre>
  
  <p>And here the <code>UITableViewController</code> class:</p>
  
  <pre class="lang-swift prettyprint-override"><code>import UIKit
  import Alamofire
  import Alamofire_SwiftyJSON
  import SwiftyJSON
  
  class NewsTableViewController: UITableViewController {
  
      var newsList: [News] = [News]()
  
      func parseJsonNews() {
          DispatchQueue.main.async {
              Alamofire.request("link request", method: .get).responseJSON { (response) in
                  switch response.result {
                  case .success(let value):
                      let news = [value]
                      print(news) // here in console it prints correctly the json, starting with [&lt;__NSArrayI 0x6000001a9e60 ....
                      for new in news {
                          let title = new["title"]
                          print(title)
                      }
                      print(newsss)
  
                      self.tableView.reloadData()
                  case.failure(let error):
                      print(error.localizedDescription)
                  }
              })
          }
      }
  
      override func viewDidLoad() {
          super.viewDidLoad()
          parseJsonNews()
      }
  
      // MARK: - Table view data source
  
      override func numberOfSections(in tableView: UITableView) -&gt; Int {
          return 1
      }
  
      override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
          return self.newsList.count
      }
  
  
      override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
          let cell = tableView.dequeueReusableCell(withIdentifier: "newsCell", for: indexPath) as? NewsTableViewCell
  
  
          // Configure the cell...
          let imageUrl = URL.init(string: newsList[indexPath.row].featuredMedia.url)
          cell?.newsTitle.text = self.newsList[indexPath.row].title
          cell?.newsContent.text = self.newsList[indexPath.row].content
          cell.newsImage.load(url: imageUrl!)
          return cell!
      }
  }
  
  extension UIImageView {
      func load(url: URL) {
          DispatchQueue.global().async { [weak self] in
              if let data = try? Data(contentsOf: url) {
                  if let image = UIImage(data: data) {
                      DispatchQueue.main.async {
                          self?.image = image
                      }
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>Looking for a solution, I just found many ways to parse dictionary JSON, but in this case, it is an array so I modified the code as you read at <code>parseJsonNews</code> method but it doesn't work properly.</p>
  
  <p>Would be grateful for any help.</p>