Возможно, вам следует создать модель данных, соответствующую Codable (вы не можете наследовать от нее, поскольку она состоит из двух протоколов Encodable и Decodable, а не класса).После того, как вы расшифровали свой JSON для объекта, вы можете сопоставить его с основными данными любым удобным для вас способом.
struct MovieData: Codable {
var genre: String
var title: String
...
}
Обратите внимание на использование точно таких же имен переменных, что и ключей в JSON, тогда он будет работать следующим образоммагия.В противном случае вы можете использовать перечисление CodingKeys для определения ключей.
enum CodingKeys: String, CodingKey {
case title = "movie_title" // define the coding key: string pairs that don't match the json
case id, rating, genre...// list all keys that match the json
}
Для декодирования JSON используйте это
JSONDecoder().decode([MovieModel].self, from: data)
Где данные - это необработанные данные изответ.Если у вас есть более сложная структура, то разбейте ее, например, если у каждого MovieModel есть атрибут, который является массивом объектов, тогда создайте отдельную структуру для этих объектов (конечно, соответствующую кодируемым), и она должна работать как шарм.Не забывайте, что JSONDecoder (). Декодирует броски.Для отладки очень полезно напечатать ошибку в предложении catch.
catch let error {
print(error)
}