尝试从JSON URL接收数据并将其放入UILabel

时间:2016-07-01 19:15:43

标签: json swift alamofire swifty-json

我正在尝试从JSON URL接收数据,然后将这些数据放入UITableView中 - 我目前正在尝试将其放入UIlabel中以简化操作,但稍后会尝试计算如何使用表格。

我使用的是最新版本的Swift和xCode,SwiftyJSON和Alamofire。

我的代码中没有错误,但我想要发生的事情并没有发生。我的UILabel连接得很好!

这是我的代码 - (由于某些原因,当我将代码粘贴到此处时,某些代码未列为代码 - 虽然这不是我的代码,但这不是问题!!!)

import UIKit
import Alamofire

class ViewController: UIViewController {

    @IBOutlet weak var dataContainer: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = "https://opendata.gov.je/dataset/bdae149d-ff02-443a-b5ed-446a206e74f7/resource/042ea501-a4eb-48c1-9a23-9f01084d72e6/download/stats-from-govmetric.json.txt"

        Alamofire.request(.GET, url).validate().responseJSON { response in
            switch response.result {
            case .Success(let data):
                let json = JSON(data)
                let name = json["name"].stringValue
                self.dataContainer.text = data as? String
                print(response.request)
                print(response.response)
                print(response.result)
                print(name)
            case .Failure(let error):
                print("Request failed with error: \(error)")
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

永远不要使用SwiftyJSON,但看起来你没有正确地解析json。

self.dataContainer.text = data as? String

你不能这样做,因为data 100%非String(我认为它是NSData)。所以你需要做这样的事情:self.dataContainer.text = name。但它也不起作用,因为你接收json作为数组,而不是对象。所以,我认为,这段代码可行:

self.dataContainer.text = json[0]["Date range"].string