SWIFT 2: Loop through JSON array

2020-02-04 03:04发布

I am getting this json from a url, the return JSON is:

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

I want to display the names in a TableView on IOS.

My Swift2 Code is:

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)

        }
    }
}

How can I loop through the JSON array to put which name in a cell on a Table View?

4条回答
forever°为你锁心
2楼-- · 2020-02-04 03:04

make the JSON results in a DICT and get it with a loop "for (key, value)"

查看更多
Lonely孤独者°
3楼-- · 2020-02-04 03:11

The variable jsonResult is an array of dictionaries, so you can loop through the array with

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
}

In Swift 3 the unspecified JSON type has been changed to Any

for anItem in jsonResult as! [Dictionary<String, Any>] { ... // or [[String:Any]]
查看更多
干净又极端
4楼-- · 2020-02-04 03:13

If your is finally

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

Updated:

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

Updated:

Make the JSON results in a DICT and get it with a loop "for (key, value)"

查看更多
疯言疯语
5楼-- · 2020-02-04 03:27
let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data,
  options: NSJSONReadingOptions.AllowFragments,
  error:&parseError)
查看更多
登录 后发表回答