我是Kotlin的新手,正在尝试解析一个简单的json,但是我得到了一个
" Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter vouchers"
result.products
始终为null,但是我在日志中看到,经过200 ok请求的改型可以正确获取json。所以我想当我尝试解析json时这可能是个问题
我该如何解决?
谢谢前进
我在下面添加了我的代码
disposable = ApiServe.getVouchers()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result -> processVouchers(result.products) },
{ error -> error(error.message)}
)
fun processVouchers(vouchers : List<Product>){
mCallback?.onResponseVouchers(vouchers)
}
获取ApiServe类中的VOUCHERES
@GET(Api.ENDPOINT.VOUCHER_ENDPOIN)
fun getVoucher(): Observable<Response<Vouchers>>
模型
data class Voucher(val products: List<Product>)
data class Product(val code: String, val name: String, val price: Double)
JSON
{"products":[{"code":"Voucher","name":"Voucher","price":3},{"code":"Ball","name":"Voucher Ball","price":10},{"code":"Milk","name":"Voucher Milk","price":8.5}]}
答案 0 :(得分:1)
我认为这是因为您在Response
服务界面中用Retrofit
包装了返回类型。只需尝试这样更改:
@GET(Api.ENDPOINT.VOUCHER_ENDPOIN)
fun getVoucher(): Observable<Voucher>
答案 1 :(得分:0)
我相信这里的问题可能是
fun getVouchers(): Observable<Voucher.Vouchers>
您确定getVoucher返回正确的类型吗?不应该是Observable<Voucher>
吗?
编辑:
事实证明,作者将excludeFieldsWithModifiers
用于其GsonConverterFactory,这引起了模型解析的问题。