2

我正在使用并且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

4

0 回答 0