Kotlin -Serialisierung

Kotlin -Serialisierung
Das Teilen von Code über Plattformen hinweg ist nicht möglich. IO, Transformationen, Fäden und Serialisierung, um einige zu erwähnen, werden auf jeder Plattform, die Sie unterstützen möchten, unterschiedlich behandelt. Es gibt bereits mehrere Bibliotheken, die die Kotlin-Serialisierung unterstützen und sogar Kotlin-Code produzieren können, wobei Square von Square am bekanntesten ist.

In diesem Artikel werden wir eine kurze Diskussion über die Kotlin -Serialisierung führen.

Was sind Serialisierung und Deserialisierung in Kotlin??

Serialisierung ist die Technik, um die Daten einer Anwendung in ein Format zu verwandeln, das in einem Netzwerk gesendet werden kann oder in der Datenbank oder Datei gespeichert werden kann. Die Deserialisierung hingegen ist das Extrahieren von Daten aus einem abgelegenen Ort und die Umwandlung in ein Laufzeitobjekt. Beide sind in den meisten Apps, die mit Daten mit externen Parteien interagieren, erforderliche Komponenten.

JSON- und Protokollpuffer sind zwei Beispiele für Datenserialisierungsformate, die häufig verwendet werden. Sie ermöglichen es Daten, über Systeme zu fließen, die in einer modernen Sprache integriert sind, da sie sowohl Sprache als auch Plattform agnostisch sind.

Datenserialisierungsfunktionen in Kotlin können in einer eigenständigen Komponente namens Kotlinx gefunden werden. Serialisierung. Die Laufzeitbibliotheken und das Gradle Plugin-org.Jetbrains.Kotlin.Plugin.Serialisierung- sind die beiden Hauptkomponenten.

Kotlin -Serialisierungsbibliotheken

Alle Kotlin -Serialisierungsbibliotheken sind in der Org enthalten.JetBrains -Paket. Kotlinx ist ein Name für eine Gruppe von Menschen. Sie haben Suffixe, die das Serialisierungsformat darstellen und mit der Kotlinx-Serialisierung beginnen.

Beispiele:

JSON -Serialisierung für Kotlin -Projekte wird von org bereitgestellt.Jetbrains.Kotlinx: Kotlinx-serialization-json.
Die CBOR -Serialisierung erfolgt durch org.Jetbrains.Kotlinx: Kotlinx-Serialization-CBOR.

Sie müssen nicht manuell plattformspezifische Artefakte hinzufügen, da sie automatisch behandelt werden. Die JVM-, JS-, Native- und Plattformprojekte verwenden dieselben Abhängigkeiten.

So verwenden Sie die Kotlin -Serialisierung im Code

Bevor Sie mit dem Kotlin -Serialisierungscode fortfahren, stellen Sie sicher, dass Ihr Build -Skript konfiguriert ist, damit Sie Kotlin -Serialisierungstools in Ihrem Projekt verwenden können.

In Ihrem Projektbau.Gradle.KTS -Datei Verwenden Sie den Kotlin („Plugin).Serialisierung ”) im Plugin -Block.

Dann in Ihrem Build.Gradle (.KTS) Datei, fügen Sie die Abhängigkeit der Laufzeitbibliothek hinzu "org".Jetbrains.kotlinx: kotlinx-serialization-json: 1.0.0 ”zu Ihren Angehörigen Block.

Um die Kotlin -Serialisierung zu verstehen, sollten Sie sich die folgenden Beispiele ansehen:

Beispiel Nr. 1: Programm zur Serialisierung der Kotlin -Instanz in JSON

Wir haben die Serialisierungs -API, die uns hilft, an unserem Code zu arbeiten. Der Kotlinx.Serialisierung und ihre Feature -Subpakete, einschließlich Kotlinx.Serialisierung.JSON, schließen die API ein. Es gibt eine andere Bibliothek „json.CodetoString “zu verwenden, das Strings für JSON codiert.

Wir importieren die Bibliotheken aus dem Kotlinx.Serialisierung. Zunächst kommentieren wir eine Klasse mit @Serializable. Wir deklarieren hier eine Datenklasse mit dem Namen "Daten". Die Klassendaten rufen einen Konstruktor mit zwei Variablen auf. Die Variablen werden mit dem Schlüsselwort "Val" dargestellt und weisen einen Namen „Name“ und „Alter“ zu. Die Variable "Name" wird mit der Typ -Eigenschaft "String" festgelegt und das Variable "Alter" mit der Eigenschaft "int" -Typ gesetzt.

Nach der Erklärung der Datenklasse verwenden wir @optin, ein globaler Raum. Mit Kotlins Opt -In -Ansatz können Sie APIs identifizieren, die mit Vorsicht verwendet werden sollten - oder gar nicht. Wenn Sie eine Deklaration (eine Klasse, eine Funktion, eine Eigenschaft oder etwas anderes) abgeben, wird die Verwendung zu einer Warnung oder einem Fehler im Code führt, sodass der Benutzer sich aktiv entscheiden muss, sie zu verwenden, um sie zu verwenden. Dadurch wird sichergestellt, dass die Entscheidung, die API auf der Nutzungsstelle zu verwenden, bewusst getroffen wurde.

Hier übergeben wir einen experimentellen API -Marker daran. Dann haben wir die Hauptfunktion definiert, in der wir eine Variable „myInfo“ erstellen,. Die Variable „MyInfo“ heißt JSON.CodetoString, bei dem das als Parameter bestandene Objekt serialisiert und in einen JSON -String codiert wird. Infolgedessen erhalten Sie eine JSON-formatierte Zeichenfolge, die den aktuellen Status des Objekts darstellt. Durch die Verwendung der Kotlin Println -Funktion werden wir die Werte der Variablen "myInfo" drucken.

Die Ausgabe ist im JSON -Format im folgenden Konsolenbildschirm angezeigt.

Beispiel Nr. 2: Programm zur Serialisierung und Deserialisierung von Objekten in Kotlin

Serialisierung ist die Umwandlung eines Objekts in einen Byt -Strom oder eine Zeichenfolge, während die Deserialisierung die Wiederherstellung dieses Streams in ein neues Objekt ist.

Im obigen Code haben wir eine Implementierung einer serialisierbaren Schnittstelle, mit der Kotlin automatisch verarbeitet werden kann.

Die Bibliothek Java.IO bedeutet, dass wir alle Klassen des Eingabe-Output-Pakets in den Code importiert haben. Dann deklarieren wir eine Klasse als „Spieler“, die eine serialisierbare Schnittstelle implementiert hat. Die "Spieler" -Objekte der Klasse können jetzt in Streams umgewandelt werden. Der Konstruktor ist für die Klasse „Spieler“ aufgefordert und wir erstellen ein Objekt „Spieler“, das privat gehalten wird und eine Eigenschaft vom String -Typ festlegt.

Danach haben wir ein Schlüsselwort "überschreiben" mit der Funktion toString (). Die Explizitheit der Override erklärt das Programm und vermeidet Fehler. Eine Funktion toString () repräsentiert die Elemente eines Objekts in einem lesbaren Format ist wichtig, um Programmierprobleme zu identifizieren und zu korrigieren. Der Override toString () gibt die Zeichenfolge des Objekts "Spieler" zurück. Wir haben den Init -Block, in dem wir ein Objekt „Spieler“ mit den Elementen der String mithilfe der Hashsetof -Funktion initialisieren. Dann haben wir eine weitere serialisierte Klasse „Tennis“, in der wir seine Objekte festlegen, indem wir seinen Konstruktor erstellen.

Wir erstellen ein Objekt "Player" in der Klasse "Tennis" und rufen die Spielerklasse darin an. Im Block Override toString () setzen wir die Felder eines Objektspielers. Danach haben wir eine Hauptfunktion, in der wir eine Variable „Tennis“ deklarieren und ihre Felder festlegen. Verwenden Sie nun die Funktion writeObject () aus der ObjectOutputStream -Klasse, konvertieren Sie das Objekt in ein serialisiert.

Auf dem Terminalbildschirm wird die Ausgabe angezeigt.

Abschluss

Ziel dieses Artikelshandbuchs ist es, das Konzept der Kotlin -Serialisierung in der Kotlin -Sprache zu zeigen. Wir haben das Thema Serialisierung und Deserialisierung diskutiert und wie man die Kotlin -Serialisierungsbibliotheken nutzt. Wir haben auch die Beispiele mit dem laufenden Code für Sie abgedeckt.