如何 link 解码 json 到 swift 中的 uilabels?

How to link decoded json to uilabels in swift?

我想 link 解码 JSON 到我的 UILabels 在我看来。我怎样才能做到这一点? 下面给出的结构是我在下面解码并能够打印出来的。但我尝试 link 为那些解码数据添加标签。

struct Details:Decodable{
    var deaths : Int
    var recovered : Int
    var active : Int
    var critical : Int
    var cases : Int
    var tests:Int
    var todayCases:Int
    var todayDeaths:Int
    var todayRecovered:Int   
}

我在 viewDidLoad

中进行了解析
class ViewController: UIViewController {
    
    var detailData:Details!
    
    @IBOutlet weak var infected: UILabel!
    @IBOutlet weak var active: UILabel!
    @IBOutlet weak var recovered: UILabel!
    @IBOutlet weak var death: UILabel!
    @IBOutlet weak var totalTested: UILabel!
    
    
                                //MARK: - View DID LOAD
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
                                //MARK: - BASIC EDIT
        
        title = "Neporona"
        let group = [infected,active,recovered,death,totalTested]
        for i in group{
            i!.layer.masksToBounds = true
            i!.layer.cornerRadius = 20
        }
        
        
        //MARK: - JSON DECODING
        
        guard let url = URL(string: "https://corona.lmao.ninja/v2/countries/nepal?yesterday=false") else { return }
        
        URLSession.shared.dataTask(with: url) { (data, response, error) in
            
            guard let data = data else { return }

            
            do{
                let decoder = try JSONDecoder().decode(Details.self, from: data)
                self.detailData = decoder
                print(self.detailData!)
            }
            catch{
                print(error.localizedDescription)
            }
            
        }.resume()
    }
}

您可以更新 detailDatadidSet 上的标签,如下所示,

var detailData:Details! {
    didSet {
         DispatchQueue.main.async {
             self.infected.text = String(self.detailData.cases)
             self.active.text = String(self.detailData.active)
             self.recovered.text = String(self.detailData.recovered)
         }
    }
}