Игнорировать неполные записи в json
Пользуюсь retrofit '2.3.0', gson '2.8.5'
Например есть модель ResponseData
data class ResponseData(
val name: String,
val phone: String,
val fullAge: Int
)
Бэк возвращает List<ResponseData>
[
{
"name": "Monga",
"phone": "458-568-45",
"fullAge": 2
},
{
"name": null, //бэк гадина, не должен такое присылать, но присылает
"phone": "568-45",
"fullAge": 6
},
{
"name": "Stella",
"phone": "45677-5",
"fullAge": 3
}
]
Можно ли заставить Gson игнорировать те элементы Json которые не подходят к описанной модели?т.е. в данном примере в модели name указан как NonNull, а с бэка одна запись приходит с name = null - эту запись (item) нужно пропустить, в итоге чтобы получилось так
[
{
"name": "Monga",
"phone": "458-568-45",
"fullAge": 2
},
{
"name": "Stella",
"phone": "45677-5",
"fullAge": 3
}
]
p.s. я специально не хочу создавать модель
data class ResponseData(
val name: String?,
val phone: String?,
val fullAge: Int?
)
а так-же не хочу после получения и десериализации данных мапить их в другую структуру уже отфильтровывая по предикату != null
val domainData = list.filter { it.name != null && ... }.map { Data(...) }
data class Data(
val name: String,
val phone: String,
val fullAge: Int
)