首页 > 解决方案 > kotlinx 序列化。反序列化泛型参数麻烦

问题描述

我正在将我的项目序列化客户端从 GSON 迁移到 KotlinxSerialization 并遇到一个问题:来自 API 的所有响应都继承了一个抽象类,例如:

abstract class BaseResponse <T> (
val type: String? = null,
val payload: T? = null){

当我尝试从 API 获得响应时,我使用该类

@Srializable
class LoginResponse: BaseResponse <LoginResponse.LoginPayload> (){

class LoginPayload(val s: Int)

}

并得到序列化错误 java.lang.NoSuchFieldError: No field typeSerial0 of type Lkotlinx / serialization / KSerializer;在类 Lru / .../ response / LoginResponse $$ 序列化程序中;或其超类

据我了解,反序列化器首先尝试反序列化父类的字段,并且不了解如何反序列化有效负载。这个问题花了两天时间,不知道怎么解决。

标签: androidkotlinx.serializationkotlinx

解决方案


推荐阅读