Я анализирую этот API с быстрой Codable
"total": 7,
"searchResult": [
null,
{
"name": "joe"
"family": "adam"
},
null,
{
"name": "martin"
"family": "lavrix"
},
{
"name": "sarah"
"family": "mia"
},
null,
{
"name": "ali"
"family": "abraham"
}
]
с этим PaginationModel
:
class PaginationModel<T: Codable>: Codable {
var total: Int?
var data: T?
enum CodingKeys: String, CodingKey {
case total
case data = "searchResult"
}
required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.total = try container.decodeIfPresent(Int.self, forKey: .total)
self.data = try container.decodeIfPresent(T.self, forKey: .data)
}
}
и User
Модель:
struct User: Codable {
var name: String?
var family: String?
}
я звоню jsonDecoder
вот так для разбора API json:
let responseObject = try JSONDecoder().decode(PaginationModel<[User?]>.self, from: json)
теперь моя проблема null
в searchResult
массиве. он был проанализирован правильно, и когда я получил доступ к data
в paginationModel
, я нашел null
в массиве.
как я могу игнорировать все null
при разборе API, и результатом будет массив без каких-либо null