-
-
Save ashishkakkad8/7c599c6e052d722b0083 to your computer and use it in GitHub Desktop.
| // | |
| // ViewController.swift | |
| // SwiftJSONParsingDemo | |
| // | |
| // Created by Ashish Kakkad on 12/10/16. | |
| // Copyright © 2016 Kode. All rights reserved. | |
| // | |
| import UIKit | |
| class ViewController: UIViewController { | |
| @IBOutlet weak var tableView: UITableView! | |
| var names: [String] = [] | |
| var contacts: [String] = [] | |
| override func viewDidLoad() { | |
| super.viewDidLoad() | |
| let url=URL(string:"http://api.androidhive.info/contacts/") | |
| do { | |
| let allContactsData = try Data(contentsOf: url!) | |
| let allContacts = try JSONSerialization.jsonObject(with: allContactsData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : AnyObject] | |
| if let arrJSON = allContacts["contacts"] { | |
| for index in 0...arrJSON.count-1 { | |
| let aObject = arrJSON[index] as! [String : AnyObject] | |
| names.append(aObject["name"] as! String) | |
| contacts.append(aObject["email"] as! String) | |
| } | |
| } | |
| print(names) | |
| print(contacts) | |
| self.tableView.reloadData() | |
| } | |
| catch { | |
| } | |
| } | |
| override func didReceiveMemoryWarning() { | |
| super.didReceiveMemoryWarning() | |
| // Dispose of any resources that can be recreated. | |
| } | |
| func tableView(_ tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { | |
| return self.names.count; | |
| } | |
| func tableView(_ tableView: UITableView!, didSelectRowAtIndexPath indexPath: IndexPath!) { | |
| print("You selected name : "+names[indexPath.row]) | |
| } | |
| func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell{ | |
| var cell = tableView.dequeueReusableCell(withIdentifier: "cell") | |
| if !(cell != nil) { | |
| cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell") | |
| } | |
| cell?.textLabel?.text=self.names[indexPath.row] | |
| cell?.detailTextLabel?.text = self.contacts[indexPath.row] | |
| return cell! | |
| } | |
| } |
I have looked for this snippet all over the internet. Thank you
@polamgh did you ever figure it out?
@polamgh I encountered with the same issue. Xcode 8 swift 3. Did you figure it out?
Hi,
Please, I need help.
I encountered with the same issue too. Xcode 8 swift 3. Did you figure it out?
Kind Regards
@polamgh @Dengekiko Did anyone figure that out. Having same issue.
@maninipoornam : Just small changes in above code and it's working on phone.
let allContacts = try JSONSerialization.jsonObject(with: allContactsData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : NSArray]
if let arrJSON = allContacts["contacts"] {
for index in 0...arrJSON.count-1 {
let aObject = arrJSON[index] as! [String: Any]
names.append(aObject["name"] as! String)
contacts.append(aObject["email"] as! String)
}
}let allContactsData = try Data(contentsOf: self.url!)
let allContacts = try JSONSerialization.jsonObject(with: allContactsData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : AnyObject]
if let arrJSON = allContacts["data"] as! [String]?{
for index in 0...arrJSON.count-1 {
let aObject = arrJSON[index] as! String
The code is running well but when I lost the internet connection the code crash in the line "let allContactsData = try Data(contentsOf: url!)". Can someone help me? I am using swift 3
Thank You
in xcode 8
in simulator is ok but when select the phone got this message 'Ambiguous use of subscript' at the line 'let aObject = arrJSON[index] as! [String : AnyObject]'