Пожалуйста, , прочитайте JSON. Нет ключа inProrgresss
.
И создать структуру для словарей, это довольно просто
struct CompData: Decodable {
let inProgress: [Location]?
let past: [Location]
let upcoming: [Location]
}
struct Location : Decodable {
let city, countryCode, name, date, country, id : String
}
И объявить inProgress
необязательным, поскольку массив пуст.
Редактировать :
В getData
много избыточного кода. Это более эффективно. convertFromSnakeCase
делает то, что говорит.
func getData(url: URLConvertible) {
SVProgressHUD.show()
Alamofire.request(url).responseData { (response) in
SVProgressHUD.dismiss()
switch response.result {
case .success(let data):
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
do {
let result = try decoder.decode(CompData.self, from: data)
print("NEWDATA \(result)")
} catch {
print(error)
}
case .failure(let error): print(error)
}
}
}