Swift Json 转换为 tableview 的数组

Posted

技术标签:

【中文标题】Swift Json 转换为 tableview 的数组【英文标题】:Swift Json into array for tableview 【发布时间】:2015-04-16 02:30:14 【问题描述】:

php 编码已经 10 多年了,现在正在尝试编写我的第一个 ios 应用程序,但是天啊天啊,学习曲线陡峭且困难!!!!我已经尝试了两个星期来获得一个简单的 url,将 Json 显示到一个数组中,然后到一个 tableview 中,我很难过。我找到的任何演示都在 Objective C 甚至 Swift 中,但不是最新的 Xcode 6.1。我看过教程并且有一本来自 Apress 的好书(去年 11 月出版),但一无所获。我已经设置了我的 tableview 并且可以让它从静态构建的数组中正确显示,所以我不需要任何帮助。我所需要的只是一个从 url 解析 json 文件并将其扔到一个数组中的最新示例,我可以从中构建我的表行。

【问题讨论】:

【参考方案1】:

试试这样的方法让你继续前进:

let url = NSURL(string: "http://date.jsontest.com")

    var request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "GET"
    request.setValue("application/json", forHTTPHeaderField: "Accept")

    let fetchData: NSURLSessionDataTask = NSURLSession.sharedSession().dataTaskWithRequest(request)  (data, response, error) -> Void in
        if error == nil 
            var json = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.allZeros, error: nil) as! NSDictionary
            println("\(json)")
        
    

    fetchData.resume()

【讨论】:

在您的示例中我用来构建行的数组的名称是什么? json 是 json 对象的字典,所以在这个例子中你会做类似 json["time"] json["date"] 啊,我错过了“var json”那部分。所以我猜数组中的总数是 json.count ? 真的取决于你的 json 模型。只需在行上设置一个断点,然后看看返回的内容是什么?【参考方案2】:

我没有任何现成的东西可以完成所有这些,至少在 Swift 中没有。我编写了一些代码来将本地 JSON 数据解析为集合对象。那部分很简单。

将 JSON 数据解析为数组的代码可能如下所示:

if let quizNSArray: NSArray = NSJSONSerialization.JSONObjectWithData(sourceJSONData,
  options: NSJSONReadingOptions(0),
  error: nil) as? NSArray

  //If JSON conversion worked this code executes.

您需要编写代码来创建一个 NSURLRequest,然后是一个 NSURLConnection,并提交和异步 GET 请求,然后将结果收集到一个 NSData 对象中。或者,您可以使用带有完成块的 NSURLConnection 类方法。 (它被称为sendAsynchronousRequest:queue:completionHandler:)。我可以在睡梦中用 Objective-C 编写代码,但还没有用 swift 编写。

【讨论】:

谢谢,明天我会先试试。是的,问题是你们多年来一直在使用 Objective C 编码的人很容易,因为它仍然可以在 Xcode 中工作。现在尝试使用 Swift 开始的人被难住了。苹果自己的开发者部分在我看来对于初学者来说太难理解了,还不如用双荷兰语写的!!

以上是关于Swift Json 转换为 tableview 的数组的主要内容,如果未能解决你的问题,请参考以下文章

JSON不会在swift 3中解析为TableView

如何将json对象的值设置为swift 3中tableView中动态呈现的视图中的标签?

Swift:如何在 TableView 内的 CollectionView 中显示解析的 JSON 数据?

使用 ObjectMapper - 如何将 JSON 结果快速转换为 TableView

Swift 错误转换点(CGPoint,到:UITableView)

如何在 Swift 2 中从 JSON 填充我的 tableView?