【发布时间】:2019-07-10 18:09:46
【问题描述】:
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 正是我在这里发布的,所以这些值不为空(例如,我不是在谈论电话是@987654336 @在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
)
)
【问题讨论】:
标签: android json kotlin gson rx-java2