-
-
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]'