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

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

【问题讨论】:

    标签: json swift url


    【解决方案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 开始的人被难住了。苹果自己的开发者部分在我看来对于初学者来说太难理解了,还不如用双荷兰语写的!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多