Подтвердить что ты не робот

SWIFT 2: цикл через массив JSON

Я получаю этот json от url, возврат JSON:

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

Я хочу отображать имена в TableView на IOS.

Мой код Swift2:

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)

        }
    }
}

Как я могу прокручивать массив JSON для размещения имени в ячейке в представлении таблицы?

Спасибо

4b9b3361

Ответ 1

Переменная jsonResult - это массив словарей, поэтому вы можете прокручивать массив с помощью

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
}

В Swift 3 неуказанный тип JSON был изменен на Any

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

Ответ 2

сделать результаты JSON в DICT и получить его с циклом "для (ключ, значение)"

Ответ 3

Если вы, наконец,

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

Обновлено:

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

Обновлено:

Сделайте JSON результатом DICT и получите его с циклом "для (ключ, значение)"

Ответ 4

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