使用Kotlinx反序列化响应。序列化和改造

我在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} }。

cntong 回答:使用Kotlinx反序列化响应。序列化和改造

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2460727.html

大家都在问