如何在 Swift 4.0 中将 JSON 输出设置为 UILabel?

How to set JSON output into UILabel in Swift 4.0?

我正在开发一个内置于 Swift 4.0(Xcode Beta 9)的应用程序,它将从 Bitstamp API 中提取比特币值(这部分正在运行)和输出标签中的值。我卡住的地方是将此调用的输出放入我的标签中。

值在这里打印出来:

let btcValues = try
JSONDecoder().decode(BitcoinResponse.self, from: data)
print("$" + btcValues.last)

我的 ViewController.swift 文件中的完整代码:

import UIKit

struct BitcoinResponse: Decodable {
    let high: String
    let last: String
    let timestamp: String
    let bid: String
    let vwap: String
    let volume: String
    let low: String
    let ask: String
    let open: String
}

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let jsonUrlString = "https://www.bitstamp.net/api/v2/ticker/btcusd/"
        guard let url = URL(string: jsonUrlString) else { return }

        URLSession.shared.dataTask(with: url) {
            (data, response, err) in
            guard let data = data else { return }

            do {
                let btcValues = try
                    JSONDecoder().decode(BitcoinResponse.self, from: data)
                print("$" + btcValues.last)
                                }
            catch let jsonErr {
                print("Error serializing json:", jsonErr)
            }

        }.resume()

    }
    @IBOutlet weak var btcValue: UILabel!
    //output goes here
}

我的出口 btcValue 在这里被引用:

@IBOutlet weak var btcValue: UILabel!
//output goes here

我宁愿不使用 SwiftyJSON 等外部库来完成此任务(因为没有它我已经完成了 99% 的工作)。

谢谢

给label的text赋值即可属性(来自主线程):

let btcValues = try JSONDecoder().decode(BitcoinResponse.self, from: data)
DispatchQueue.main.async {
    self.btcValue.text = "$\(btcValues.last)"
}