2015-08-06 16 views
12

Tôi nhận json này từ một url, sự trở lại JSON là:SWIFT 2: Vòng qua JSON mảng

[{"id":1,"name":"Mary"},{"id":2,"name":"John"}] 

Tôi muốn hiển thị tên trong một TableView trên IOS.

My Swift2 Mã là:

class ViewController: UIViewController, UITableViewDelegate { 

    var NumberOfPersons = 0 

    var NameOfPerson = [String]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     parseJSON() 

    } 

    func parseJSON(){ 

     do { 

      let data = NSData(contentsOfURL: NSURL(string: "http://zzzzzz.com/API/name.php")!) 

      let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) 

      let NumberOfPersons = jsonResult.count 

      **LOOP THROUGH THE JSON ARRAY** 

     } catch let error as NSError { 

      print(error) 

     } 
    } 
} 

Làm thế nào tôi có thể lặp qua mảng JSON để đặt mà tên trong một tế bào trên một bảng Xem ở?

Cảm ơn

Trả lời

26

Biến jsonResult là một mảng của bộ từ điển, vì vậy bạn có thể lặp qua mảng với

for anItem in jsonResult as! [Dictionary<String, AnyObject>] { // or [[String:AnyObject]] 
    let personName = anItem["name"] as! String 
    let personID = anItem["id"] as! Int 
// do something with personName and personID 
} 

Trong Swift 3 kiểu JSON không xác định đã được thay đổi để Any

for anItem in jsonResult as! [Dictionary<String, Any>] { ... // or [[String:Any]] 
+0

Cảm ơn bạn! Những công việc này! – user3163404

0

làm cho kết quả JSON trong một dict và làm cho nó với một vòng lặp "for (key, value)"

+0

Bạn có nghĩa là: hãy JsonResult = thử NSJSONSerialization.JSONObjectWithData (dữ liệu !, lựa chọn: NSJSONReadingOptions.MutableContainers) như NSDictionary – user3163404

0

Nếu bạn cuối cùng là

let jsonResult = [{"id":1,"name":"Mary"},{"id":2,"name":"John"}] 
var jsonDictResult[String: Int] = jsonResult; 

Cập nhật:

let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, 
    options: NSJSONReadingOptions.AllowFragments, 
    error:&parseError) 

Cập nhật:

Tận dụng tối JSON kết quả trong một dict và làm cho nó với một vòng lặp "cho (key, value)"

+0

Thanky bạn. Nhưng bạn có thể giải thích thêm một chút không? – user3163404

+0

bạn tạo mảng trong dict [key: value]. nếu jsonResult của bạn chỉ đơn giản là một mảng. – touk

0
let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, 
    options: NSJSONReadingOptions.AllowFragments, 
    error:&parseError) 
Các vấn đề liên quan