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
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]]
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)"
let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data,
options: NSJSONReadingOptions.AllowFragments,
error:&parseError)
créer les résultats JSON dans un DICT et l'obtenir avec une boucle "pour (clé, valeur)"