我在kotlinx.serialization
中使用implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.5.0")
和Retrofit2
我可能缺少明显的东西,但我只是没有将2和2放在一起。
我有一个可序列化的类,其中包含另一个可序列化的类的列表:
@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.
我想期望我为列表提供序列化程序?
我已经读过我应该能够使用像B.serializer().list
这样的列表序列化程序,但是我不确定在上下文中该使用它的位置,当我尝试将其放置在任何地方时,我会得到{{1} }。