【问题标题】:SWIFT 2: Loop through JSON arraySWIFT 2:循环遍历 JSON 数组
【发布时间】:2015-08-06 14:32:15
【问题描述】:

我从一个 url 获取这个 json,返回的 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 数组以将哪个名称放入表格视图的单元格中?

【问题讨论】:

    标签: json loops swift2


    【解决方案1】:

    变量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 3 中,未指定的 JSON 类型已更改为 Any

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

    【讨论】:

      【解决方案2】:

      将 JSON 结果生成 DICT 并通过循环“for (key, value)”获取它

      【讨论】:

      • 你的意思是:让 jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as NSDictionary
      【解决方案3】:

      如果你终于是了

      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 (key, value)"

      【讨论】:

      • 谢谢。但是你能再解释一下吗?
      • 你在 dict[key:value] 中创建数组。如果您的 jsonResult 只是一个数组。
      【解决方案4】:
      let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data,
        options: NSJSONReadingOptions.AllowFragments,
        error:&parseError)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-12
        • 1970-01-01
        • 1970-01-01
        • 2015-07-22
        • 2013-08-16
        • 2011-06-11
        • 2013-02-06
        • 1970-01-01
        相关资源
        最近更新 更多