I connected to API using Alamofire and SwiftyJson.
I got this JSON return:
{ "contacts": [ { "id": "c200", "name": "Ravi Tamada", "email": "[email protected]", "address": "xx-xx-xxxx,x - street, x - country", "gender" : "male", "phone": { "mobile": "+91 0000000000", "home": "00 000000", "office": "00 000000" } }, { "id": "c201", "name": "Johnny Depp", "email": "[email protected]", "address": "xx-xx-xxxx,x - street, x - country", "gender" : "male", "phone": { "mobile": "+91 0000000000", "home": "00 000000", "office": "00 000000" } }, { "id": "c202", "name": "Leonardo Dicaprio", "email": "[email protected]", "address": "xx-xx-xxxx,x - street, x - country", "gender" : "male", "phone": { "mobile": "+91 0000000000", "home": "00 000000", "office": "00 000000" } } ] } This is my ViewController code:
import UIKit import Alamofire import SwiftyJSON class ViewController:UIViewController { @IBOutlet weak var tblJSON: UITableView! var arrRes = [[String : AnyObject]]() override func viewDidLoad() { super.viewDidLoad() getRequest() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func getRequest() { Alamofire.request("http://api.androidhive.info/contacts").responseJSON { (responseData) -> Void in if ((responseData.result.value) != nil) { let swiftyJsonVar = JSON(responseData.result.value!) if let resData = swiftyJsonVar["contacts"].arrayObject { self.arrRes = resData as! [[String : AnyObject]] } if self.arrRes.count > 0 { self.tblJSON.reloadData() } } } } //MARK: tableView func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return arrRes.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "Cell")! var dict = arrRes[indexPath.row] cell.textLabel?.text = dict["name"] as? String cell.detailTextLabel?.text = dict["email"] as? String return cell } } I have trouble displaying result on the UITableView. Can anyone help me? Thanks!
numberOfRowsInSectioncellForRowAtare this method get called ?ViewControlleras the delegate and datasource of your tableView in the storyboard? 2. Did you set overridenumberOfSectionsInTableView:returning 1 ?reloadDataon the main queue.numberOfSectionsInTableViewif you only have one section. That is the default.