При использовании протоколов Swift4 и Codable у меня возникла следующая проблема - похоже, нет способа разрешить JSONDecoder пропускать элементы в массиве.
Например, у меня есть следующий JSON:
[
{
"name": "Banana",
"points": 200,
"description": "A banana grown in Ecuador."
},
{
"name": "Orange"
}
]
И Codable структура:
struct GroceryProduct: Codable {
var name: String
var points: Int
var description: String?
}
При декодировании этого JSON
let decoder = JSONDecoder()
let products = try decoder.decode([GroceryProduct].self, from: json)
Результат products пуст. Что и следовало ожидать, из-за того, что второй объект в JSON не имеет ключа "points", в то время как points не является обязательным в структуре GroceryProduct.
Вопрос в том, как я могу разрешить JSONDecoder "пропускать" недопустимый объект?