android - 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 $$ 序列化程序中;或其超类
据我了解,反序列化器首先尝试反序列化父类的字段,并且不了解如何反序列化有效负载。这个问题花了两天时间,不知道怎么解决。
解决方案
推荐阅读
- java - 将参数传递给自定义条件
- ansible - Ansible - 使用 become_user 激活虚拟环境
- performance - “openssl speed rsa”在(通常)更好的 cpu 上性能较低
- swift - 找不到内存泄漏,可能是由于 SwiftUI
- python - 日期字符串到日期 Python
- python - 如何使用并发将数据帧附加到空数据帧
- python-3.x - 如何获取两个坐标之间矩形中的所有坐标?
- python - 如何将多列解码为字符串类型?(回到原来的类型)
- javascript - 使用 Typescript 调试 VS Code 显示转译的变量名称而不是真实名称
- c# - Inno 安装程序出错 - 无效的类字符串 progid “IISNamespace”