Android Kotlin多态序列化(字符串数组和对象数组)

Android Kotlin多态序列化(字符串数组和对象数组),android,kotlin,serialization,polymorphism,Android,Kotlin,Serialization,Polymorphism,我有一个可以返回字符串数组或对象数组的服务器响应,但我不知道如何定义这种多态关系。下面是序列化程序的Kotlin代码。语句类需要是一个普通数组,但序列化程序需要一个val键 @Serializable data class QuizResponse( val name: String, val quiz: List<Quiz> ) @Serializable data class Quiz( val id: Int, val question: St

我有一个可以返回字符串数组或对象数组的服务器响应,但我不知道如何定义这种多态关系。下面是序列化程序的Kotlin代码。
语句
类需要是一个普通数组,但序列化程序需要一个
val

@Serializable
data class QuizResponse(
    val name: String,
    val quiz: List<Quiz>
)

@Serializable
data class Quiz(
    val id: Int,
    val question: String,
    val quiz_type: String,
    val video: BasicVideo,
    val answers: List<Answer>
)

@Polymorphic
@Serializable
sealed class Answer {

    @Serializable
    data class Sentence(val answer: List<String>) : Answer()

    @Serializable
    data class Choice(val answer: String, val id: Int, val is_correct: Boolean) : Answer()
}
answers
键可以是字符串数组或对象数组。这取决于
测验类型

@Serializable
data class QuizResponse(
    val name: String,
    val quiz: List<Quiz>
)

@Serializable
data class Quiz(
    val id: Int,
    val question: String,
    val quiz_type: String,
    val video: BasicVideo,
    val answers: List<Answer>
)

@Polymorphic
@Serializable
sealed class Answer {

    @Serializable
    data class Sentence(val answer: List<String>) : Answer()

    @Serializable
    data class Choice(val answer: String, val id: Int, val is_correct: Boolean) : Answer()
}

为该数据创建自定义序列化程序的正确方法是什么?

可以执行类似以下操作
if(answers is Array)
Don't make
Answer
密封类。我将使它成为一个常规数据类,id的默认值为-1,false表示is_correct。然后编写一个自定义改装适配器来处理字符串数组和对象数组。@rafid059您好,我正在使用OkHTTP发出所有请求。你能举一些例子吗?我完全被困在这个问题上了,我在网上找不到任何关于如何做这件事的参考资料。如果(答案是数组),我可以做类似的事情。不要让
答案
成为一个密封的类。我将使它成为一个常规数据类,id的默认值为-1,false表示is_correct。然后编写一个自定义改装适配器来处理字符串数组和对象数组。@rafid059您好,我正在使用OkHTTP发出所有请求。你能举一些例子吗?我完全被困在这个问题上,我在网上找不到任何关于如何做到这一点的参考资料。