GSON
неправильно анализирует мой JSON
и возвращает null
только для некоторых полей.
Действительно, я правильно получаю за каждые doctor
rpps
и code
, но у меня есть null
для lifenId
, firstName
и lastName
.
У меня есть JSON
, который представляет собой список doctor
выглядит так:
[
{
"lifenId": "238536",
"rpps": "10002732211",
"firstName": "Yolande ",
"lastName": "Couffinhal",
"email": null,
"postalCode": null,
"city": null,
"address": null,
"code": "Médecin Neuro-psychiatrie ",
"phone": null
},
...
]
Я уверен, что мой JSON
правильный, потому что JSON
, который я получаю, является именно тем, который я публикую здесь, поэтому эти значения не равны нулю (например, я не говорю о телефоне, который null
в JSON
)
Я попытался вручную разобрать JSON
, чтобы получить firstName и lastName, это работает (очевидно, потому что у меня есть хороший JSON
, но я хотел быть уверен в этом)
Вот мой data class Doctor
:
data class Doctor(var phone: String,
var code: String,
var address: MutableList<String>,
var email: String,
var rpps: String,
var city: String,
var lastName: Any,
var firstName: Any,
var lifenId: String,
var postalCode: String) {
}
Мой запрос:
fun getDoctorsByName(name: String, token: String): Single<List<Doctor>> {
val url = "lifen/name/" + name
return repository.getDoctorsByName(url, token).compose(schedulerProvider.getSchedulersForSingle())
}
как я отношусь к возвращению:
disposable.add(viewModel.getDoctorsByName(search_bar.query.toString(), activity.token)
.doOnError {
Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show()
}
.subscribe(
{ doctors ->
/*val list = ArrayList<Doctor>()
val doc = Doctor("", "","","","",doctors[0]["lastName"] as String,doctors[0]["firstName"] as String,"","") parse manually here
list.add(doc)
adapter.updateList(list)*/
adapter.updateList(doctors)
Toast.makeText(activity, "LIST COMPLETED", Toast.LENGTH_SHORT).show()
}, Throwable::printStackTrace
)
)