Я хотел бы декодировать JSON и использовать результаты, чтобы определить, что делать в условном выражении
Ниже приводится функция JSON:
var checkStructure = [Structure1]()
func checkingJSON() {
guard let url = URL(string: "https://example.com/example/example"),
let value = name.addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed)
else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = "name=\(value)&name2=\(example1)".data(using: .utf8)
URLSession.shared.dataTask(with: request) { data, _, error in
guard let data = data else { return }
do {
self.checkStructure = try JSONDecoder().decode([Structure1].self,from:data)
DispatchQueue.main.async {
}
}
catch {
print(error)
}
}.resume()
}
Вот как я его декодирую:
struct Structure1: Codable {
var name, NUM1 : String
enum CodingKeys: String, CodingKey {
case name
case NUM1 = "NUM1"
}
}
И когда нажимается элемент кнопки панели, должно выполняться следующее условие:
let structureValue: Structure1
if let num = Int(structureValue.NUM1), num < 1 {
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Del1") as! TableViewController1
let navigationController = UINavigationController(rootViewController: controller)
self.present(navigationController, animated: true, completion: nil)
tableView.deselectRow(at: indexPath, animated: false)
} else {
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Del2") as! TableViewController2
let navigationController = UINavigationController(rootViewController: controller)
self.present(navigationController, animated: true, completion: nil)
tableView.deselectRow(at: indexPath, animated: false)
}
Но я получаю следующее сообщение об ошибке для строки let structValue:
if let num = Int(structureValue.NUM1), num < 1 {
Константа StructureValue, используемая до инициализации