Kotlin中多态对象的JSON序列化

前言 在最近的项目中,我同时用到了 Moshi 和 kotlinx-serialization 这两个 JSON 库,两者的 API 都很简洁且实用。 与 Gson 的反射机制不同,Moshi 和 kotlinx-serialization 都提供了预编译机制,可以在编译期间分别生成 Adapter 和 Serializer,从而能够以类型安全、更高效的方式完成 JSON 的序列化和反序列化。 Moshi 源于 Square ,与 Retrofit 的集成度较高,对 Android 平台的开发者比较友好 可以借助 kapt/ksp 在编译期生成 XxxJsonAdapter.kt 文件 kotlinx-serialization 源于 JetBrains,属于官方推出的扩展包,能够很方便的集成到 Ktor 中 基于 kotlin compiler plugin,在编译期生成字节码文件(Xxx$$serializer.class) 支持 KMP,能够跨平台使用。 例如:定义一套 DTO,同时在 Android端、iOS端、前端、桌面端、服务端复用。 官方支持 JSON、Protobuf、CBOR、Hocon、Properties 等格式 有大量的三方扩展,支持 TOML、XML、YAML、BSON、NBT、SharePreference、Bundle 等格式 如果你在使用 kotlin 进行日常开发工作,非常推荐你去体验和使用这两个 JSON 库。...

March 13, 2022