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 インスタンスの直列化では、 SerializersModule がこのようなオブジェクトを多形 RealmObject インターフェースにマッピングする必要があります。

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] の上書き 価値 descriptor: SerialDescriptor

関数

クリップボードにコピーされたリンク
オープン [readConcern] の上書き fun 逆シリアル化(デコード:デプロイダ): RealmAny
クリップボードにコピーされたリンク
オープン [readConcern] の上書き fun 直列化(エンコード:エンコード: RealmAny)