我已经编写了一个自定义的"student"序列化器,并希望在student列表中重用它。我是否需要为List<Student>
类型编写一个新的序列化器,还是可以重用StudentSerializer
?
例如:
class Student(
var id: Long? = null,
var name: String? = null,
var courses: MutableList<Courses> = mutableListOf()
)
class Course(
var id: Long? = null,
var name: String? = null,
var students: MutableList<Student> = mutableListOf()
)
class StudentSerializer : JsonSerializer<Student>() {
override fun serialize(student: Student?, gen: JsonGenerator, serializers: SerializerProvider?) {
gen.writeStartObject()
// ...
gen.writeEndObject()
}
}
如何在此方案中重用此序列化程序?
1条答案
按热度按时间oalqel3c1#
是否需要为类型列表编写新的序列化程序,或者是否可以重用StudentSerializer
您可以重用已经定义的
StudentSerializer
序列化器:在您的情况下,您可以使用JsonSerialize
注解和contentUsing
指令来注解Course
类中的students
字段,其中contentusing
指示用于序列化一个注解属性的内容(Collection/array的元素、Map的值)的序列化器类: