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中动态呈现的视图中的标签?
Swift:如何在 TableView 内的 CollectionView 中显示解析的 JSON 数据?
使用 ObjectMapper - 如何将 JSON 结果快速转换为 TableView