web-dev-qa-db-fra.com

SWIFT 2: boucle dans un tableau JSON

Je reçois ce json d'une url, le retour JSON est: 

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

Je veux afficher les noms dans un TableView sur IOS.

Mon code Swift2 est:

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)

        }
    }
}

Comment puis-je parcourir le tableau JSON pour mettre quel nom dans une cellule d'une vue tableau?

Merci

13
user3163404

La variable jsonResult est un tableau de dictionnaires. Vous pouvez ainsi parcourir le tableau avec 

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
}

Dans Swift 3 le type JSON non spécifié a été remplacé par Any

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

Si tu es enfin 

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

Mis à jour:

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

Mis à jour:

Créez les résultats JSON dans unDICTet obtenez-le avec une boucle"pour (clé, valeur)"

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

créer les résultats JSON dans un DICT et l'obtenir avec une boucle "pour (clé, valeur)" 

0
touk