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 для размещения имени в ячейке в представлении таблицы?
Спасибо
Ответы
Ответ 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)