RxJava 订阅返回空对象

时间:2020-12-19 13:44:31

标签: android kotlin retrofit2 rx-java2

我的代码有什么问题?

在我的来自服务器的 json 对象下方

{"Items": [
{
  "DistrictID": 1,
  "DistrictName": "sample string 2",
  "DistrictCode": "sample string 3",
  "RegionID": 4
},
{
  "DistrictID": 1,
  "DistrictName": "sample string 2",
  "DistrictCode": "sample string 3",
  "RegionID": 4
} ]}

我的 Api 请求

@GET("api/Taxes/GetDistricts")
fun getDistricts(): Observable<DistrictItems>

我的地区物品模型

 data class DistrictItems(
     var items: List<TaxDistrictModel>?

)

我的 TaxDistrictModel

data class TaxDistrictModel(

    var DistrictID: Int?,

    var DistrictName: String?,

    var DistrictCode: String?,

    var RegionID: Int?
)

我调用请求的函数

fun getRegions(): DistrictItems? {
     showLoading()
     api.getDistricts()
               .subscribeOnMain(
                       onNext = {
                           hideLoading()
                           Log.d("qwerty", "$$$$$$$$ ${it.items?.size}")
                           districtModelTypeTitles = it
                       },
                       onError = { showAlert(it) }
               )
               .disposedBy(compositeDisposable)
    return districtModelTypeTitles
}

在日志中,它显示列表的空大小。

D/qwerty: $$$$$$$$ null

我真的被这个问题困住了

1 个答案:

答案 0 :(得分:2)

默认情况下,JSON 字段名称区分大小写 --- 详细信息取决于您的 JSON 解析库。您的数据具有 Items,而您的模型类具有 items。因此该列表为空。