このjsonをURLから取得していますが、返されるJSONは次のとおりです。
[{"id":1,"name":"Mary"},{"id":2,"name":"John"}]
IOSのTableViewに名前を表示したい。
私の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配列をループして、どの名前をテーブルビューのセルに入れることができますか?
変数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では、未指定のJSONタイプがAny
に変更されました
for anItem in jsonResult as! [Dictionary<String, Any>] { ... // or [[String:Any]]
あなたがついに
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 [〜#〜]にして、ループで取得します "for (キー、値) "
let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data,
options: NSJSONReadingOptions.AllowFragments,
error:&parseError)
jSONの結果をDICTにして、「for(key、value)」のループで取得します