web-dev-qa-db-ja.com

SWIFT 2:JSON配列をループ

この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配列をループして、どの名前をテーブルビューのセルに入れることができますか?

13
user3163404

変数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]]
29
vadian

あなたがついに

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 (キー、値) "

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

jSONの結果をDICTにして、「for(key、value)」のループで取得します

0
touk