Правильный JSON
{
"title": [
[
"Temperature",
" ",
"Good"
],
[
"Visibility",
"10 KM (6.2 Mi)",
"Good"
]
]
}
var arr = [WeatherItem]()
do {
let res = try JSONDecoder().decode([String:[[String]]].self, from: data)
let content = res["title"]!
content.forEach {
if $0.count >= 3 {
arr.append(WeatherItem(title:$0[0],value:$0[1],condition:$0[2]))
}
}
print(arr)
} catch {
print(error)
}
Обсуждение: ваш корневой объект - это словарь, который содержит 1 ключ с именем title
, а его значение - это массив массивов строк или, исходя из логики модели, это массив моделей с именем WeatherItem
, но не структурирована для него должным образом, поэтому использование
let weather = try JSONDecoder().decode(WeatherItem.self, from: data)
не будет работать, так как текущий json не содержит ключей value
и condition
Правильное будущее было бы
[
{
"title":"Temperature" ,
"value":"",
"condition":"Good"
},
{
"title":"Visibility",
"title":"10 KM (6.2 Mi)",
"condition":"Good"
}
]
и это позволит вам сделать
let weather = try JSONDecoder().decode([WeatherItem].self, from: data)