Пытаюсь раскрасить данные, чтобы потом выложить в TableView, но ловлю ошибку:
keyNotFound(App.Animals.(CodingKeys in _EBC6E47D2E8ACFFEC4B52F4698C3D2D3).animal, Swift.DecodingError.Context(codingPath: [], debugDescription: “No value associated with key animal (“animal”).”, underlyingError: nil))
Вот мой код:
private var animals = [Animal]()
func getAnimal() {
guard let url = URL(string: "http://test.com/rest/animal") else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accepts")
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
guard let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:Any] else {return}
print("(\n\n\n\n\n\(json)")
let decoder = JSONDecoder()
let downloadedAnimals = try decoder.decode(Animals.self, from: data)
self.animals = downloadedAnimals.animal
print("my animal = \(self.animals)")
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch {
print(error)
}
}
}.resume()
}
class Animals: Codable {
let animal: [Animal]
init(animal: [Animal]) {
self.animal = animal
}
}
class Animal: Codable {
let animalName: [String]
let animalAbout: [String]
init(animal_title: [String], animal_about: [String]){
self.animalName = animal_title
self.animalAbout = animal_about
}
}
Сам JSON, что я пытаюсь распарсить выглядит таким образом:
animal = {
"animal_about" = "[ANIMAL_ABOUT]";
"animal_birthdate" = "03.06.2007";
"animal_color" = Green;
"animal_image" = {
alt = "";
src = "http://test.com/sites/default/files/din1.jpg";
};
"animal_title" = "[ANIMAL_NAME]";
};