我正在使用并且kotlinx.serialization
可能
遗漏了一些明显的东西,但我只是没有将 2 和 2 放在一起。implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.5.0")
Retrofit2
我有一个可序列化的类,其中包含另一个可序列化类的列表:
@Serializable
data class A(
val resultCount: Int,
val results: List<B>
)
@Serializable
data class B(
val x: Int,
val y: Int,
val z: Int
)
和这样的改造设置:
fun provideRetrofit(): Retrofit {
val contentType = MediaType.get("application/json")
return Retrofit.Builder()
.baseUrl(BaseUrl)
.addConverterFactory(Json.asConverterFactory(contentType))
.build()
}
我有一个服务:
@GET("search/")
suspend fun GetStuff(): A
当我进行网络调用GetStuff
期望获得的实例时A
,我得到了这个异常:
kotlinx.serialization.SerializationException: Can't locate argument-less serializer for class A. For generic classes, such as lists, please provide serializer explicitly.
所以我想它期望我为 List 提供一个序列化程序?
我读过我应该能够使用类似的列表序列化程序,B.serializer().list
但我不确定在我的上下文中在哪里使用它,以及当我尝试将它放在任何我得到的地方时Unresolved reference: serializer
。