Realm모든KSerializer

객체 RealmAnyKSerializer : KSerializer<RealmAny>

RealmAny에 대한 KSerializer 구현입니다. 직렬화는 가능한 모든 값 유형으로 공용체 유형을 나타내는 특정 맵 구조로 수행됩니다.

realmAny:
type: [INT, BOOL, STRING, BINARY, TIMESTAMP, FLOAT, DOUBLE, DECIMAL128, OBJECT_ID, UUID, OBJECT]
int: Long?
bool: Boolean?
string: String?
binary: ByteArray?
instant: RealmInstant?
float: Float?
double: Double?
decimal128: Decimal128?
objectId: ObjectId?
uuid: RealmUUID?
realmObject: RealmObject?

역직렬화는 관리되지 않는 RealmAny 를 사용하여 수행됩니다.

직렬 변환기는 속성별로 등록해야 합니다.

class Example : RealmObject {
@Serializable(RealmAnyKSerializer::class)
var myInstant: RealmAny = RealmAny.create("hello world")
}

또는 파일당:

@file:UseSerializers(RealmAnyKSerializer::class)

class Example : RealmObject {
var myInstant: RealmAny = RealmAny.create("hello world")
}

RealmObject 를 포함하는 RealmAny 인스턴스의 직렬화 에는 이러한 객체를 다형성 RealmObject 인터페이스에 매핑하는 SerializersModule 이 필요합니다.

val json = Json {
serializersModule = SerializersModule {
polymorphic(RealmObject::class) {
subclass(SerializableSample::class)
}
}
}

코틀린(Kotlin) 파일에 다음 코드 스니펫을 추가하면 Realm 데이터 유형을 사용하는 모든 필드를 해당 직렬 변환기에 편리하게 등록할 수 있습니다.

@file:UseSerializers(
RealmListKSerializer::class,
RealmSetKSerializer::class,
RealmAnyKSerializer::class,
RealmInstantKSerializer::class,
MutableRealmIntKSerializer::class,
RealmUUIDKSerializer::class
)

모든 Realm 데이터 유형에 대한 직렬 변환기는 io.realm.kotlin.serializers 에서 찾을 수 있습니다.

속성

클립보드에 링크 복사됨
열기 [readConcern] 재정의 val 디스크립터: SerialDescriptor

함수

클립보드에 링크 복사됨
열기 [readConcern] 재정의 fun 역직렬화(Decoder: Decoder): RealmAny
클립보드에 링크 복사됨
열기 [readConcern] 재정의 fun 직렬화(Encoder: Encoder, : RealmAny)