Создание переменных из JSON


#1

Привет! Я сделал все как в видео https://www.youtube.com/watch?time_continue=377&v=rBvybLowUKE но не смог сделать так, что бы данные, распарсенные из JSON были переменными. Грубо говоря, что бы я мог передавать их на экране моего приложения.

Код такой:

import UIKit

struct Rainstatus: Decodable {
var SSDP: String
}

class ViewController: UIViewController {

@IBOutlet weak var label: UILabel!



override func viewDidLoad() {
    super.viewDidLoad()
    
    let urlString = "http://192.168.0.4/config.live.json"
    guard let url = URL(string: urlString) else {return}
    
    URLSession.shared.dataTask(with: url) { (data, response, error) in
        
        guard let data = data else {return}
        guard error == nil else {return}
        
        do{
            let rainstatus  = try JSONDecoder().decode(Rainstatus.self, from: data)
            print(rainstatus)
        }catch let error{
            print (error)
        }
        
        
        }.resume()
}

}

Код успешно работает, в консоле данные отображаются вот так:

Rainstatus(SSDP: “Irrigation 1.0”)

То есть, сам код получает данные из JSON успешно. Как мне создать переменную, что бы использовать её, например в @IBOutlet weak internal var label: UILabel!

Жду помощи от знающих.


#2

label.text = rainstatus.SSDP

Если нужна глобальная переменная, создайте ее перед методом viewDidLoad

var rainstatus: Rainstatus?

Тогда уже во время парсинга будет так

rainstatus = try JSONDecoder().decode(Rainstatus.self, from: data)

И использование будет таким

label.text = rainstatus?.SSDP

Немного критики: это как бы основы основ, работа с переменными.