Android Kotlin多态序列化(字符串数组和对象数组)
我有一个可以返回字符串数组或对象数组的服务器响应,但我不知道如何定义这种多态关系。下面是序列化程序的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
语句
类需要是一个普通数组,但序列化程序需要一个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 makeAnswer
密封类。我将使它成为一个常规数据类,id的默认值为-1,false表示is_correct。然后编写一个自定义改装适配器来处理字符串数组和对象数组。@rafid059您好,我正在使用OkHTTP发出所有请求。你能举一些例子吗?我完全被困在这个问题上了,我在网上找不到任何关于如何做这件事的参考资料。如果(答案是数组),我可以做类似的事情。不要让答案
成为一个密封的类。我将使它成为一个常规数据类,id的默认值为-1,false表示is_correct。然后编写一个自定义改装适配器来处理字符串数组和对象数组。@rafid059您好,我正在使用OkHTTP发出所有请求。你能举一些例子吗?我完全被困在这个问题上,我在网上找不到任何关于如何做到这一点的参考资料。