В MyWeatherData
свойство weather
должно иметь тип [weather]
, поскольку JSON возвращает массив в ключе weather
:
{
"coord": {
"lon": -0.13,
"lat": 51.51
},
"weather": [{
"id": 521,
"main": "Rain",
"description": "shower rain",
"icon": "09d"
}],
"base": "stations",
"main": {
"temp": 289.64,
"pressure": 1006,
"humidity": 48,
"temp_min": 286.48,
"temp_max": 292.59
},
"visibility": 10000,
"wind": {
"speed": 1
},
"clouds": {
"all": 85
},
"dt": 1558190870,
"sys": {
"type": 1,
"id": 1414,
"message": 0.009,
"country": "GB",
"sunrise": 1558152298,
"sunset": 1558208948
},
"id": 2643743,
"name": "London",
"cod": 200
}
Таким образом, ваши типы должны выглядеть следующим образом:
struct MyWeatherData: Codable {
let coord: coord
let weather: [weather]
let base: String
}
struct coord: Codable {
let lon: Double
let lat: Double
}
struct weather : Codable {
let id : Int
let main: String
let description : String
let icon : String
}
И тогда вы можете получить weather
экземпляр по myWeatherData.weather.first