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

Posted

技术标签:

【中文标题】如何在 Swift 4.0 中将 JSON 输出设置为 UILabel?【英文标题】:How to set JSON output into UILabel in Swift 4.0? 【发布时间】:2017-08-31 21:29:08 【问题描述】:

我正在开发一个内置于 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% 的工作)。

谢谢

【问题讨论】:

到底是什么问题? btcValues.last 打印出来就好了?然后您只需将其设置为标签的text 属性... 【参考方案1】:

只需将值分配给标签的text 属性(来自主线程):

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

【讨论】:

感谢您的帮助,解决方法很简单

以上是关于如何在 Swift 4.0 中将 JSON 输出设置为 UILabel?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将 JSON 转换为数据类型?

如何在 Swift 中将 Realm 对象转换为 JSON?

如何在 Swift 中将数组添加到我的 JSON 字典

如何在swift中将json数组保存和检索到用户默认值?

如何在 Swift 中将 JSON 数据保存到 UserDefault? [复制]

如何在 swift 中将 JSON `null` 值传递给`nil` 值?