Прежде всего, указанный вами JSON не является допустимым JSON.Итак, давайте предположим, что вы на самом деле имеете в виду следующее:
{
"dogs": [{"name": "Bella"}, {"name": "Lucy"}],
"cats": [{"name": "Oscar"}, {"name": "Coco"}]
}
Тогда проблема с вашим кодом заключается просто в следующей строке:
let animals = try JSONDecoder().decode([Animal].self, from: response.data!)
Вы утверждаете, что JSON представляет массивживотных.Но это не так.Он представляет собой словарь с ключами dogs
и cats
.Так что вы просто так говорите.
struct Animal: Codable {
let name: String
}
struct Animals: Codable {
let dogs: [Animal]
let cats: [Animal]
}
Теперь все будет работать:
let animals = try JSONDecoder().decode(Animals.self, from: response.data!)