Kotlin serialisering

Kotlin serialisering
Å dele kode på tvers av plattformer er ikke mulig. IO, transformasjoner, tråd og serialisering, for å nevne noen få, håndteres alle annerledes på hver plattform du vil støtte. Det er allerede flere biblioteker som støtter Kotlin-serialisering og til og med kan produsere Kotlin-kode, med Square's Moshi som den mest kjente.

I denne artikkelen vil vi ha en kort diskusjon om Kotlin -serialisering.

Hva er serialisering og deserialisering i Kotlin?

Serialisering er teknikken for å transformere en applikasjons data til et format som kan sendes over et nettverk eller kan lagres i databasen eller filen. Deserialisering er derimot handlingen med å trekke ut data fra et eksternt sted og transformere dem til et løpstidsobjekt. De er begge påkrevd komponenter i de fleste apper som samhandler med data med utenforstående parter.

JSON og protokollbuffere er to eksempler på dataserialiseringsformater som er mye brukt. De lar data flyte på tvers av systemer som er bygget på ethvert moderne språk fordi de både er språk og plattform agnostisk.

Dataserialiseringsevner i Kotlin kan finnes i en frittstående komponent kalt Kotlinx. Serialisering. Runtime-bibliotekene og Gradle-plugin-org.Jetbrains.Kotlin.plugg inn.Serialisering- er de to primære komponentene.

Kotlin serialiseringsbiblioteker

Alle Kotlin -serialiseringsbiblioteker er inneholdt i org.Jetbrains -pakke. Kotlinx er et navn for en gruppe mennesker. De har suffikser som representerer serialiseringsformatet og begynner med Kotlinx-serialisering.

Eksempler:

JSON -serialisering for Kotlin -prosjekter er gitt av Org.Jetbrains.Kotlinx: Kotlinx-serialization-Json.
Cbor -serialisering er gitt av org.Jetbrains.Kotlinx: Kotlinx-serialization-CBOR.

Du trenger ikke å legge til plattformspesifikke gjenstander manuelt fordi de blir håndtert automatisk. JVM, JS, Native og Cross-Platform Projects bruker de samme avhengighetene.

Hvordan bruke Kotlin -serialisering i koden

Før du fortsetter med Kotlin -serialiseringskoden, må du sørge for at byggeskriptet ditt er konfigurert for å la deg bruke Kotlin -serialiseringsverktøy i prosjektet ditt.

I prosjektbyggingen din.gradle.KTS -fil Bruk Kotlin (“Plugin.serialisering ”) i plugin -blokken.

Da, i din bygning.gradle (.kts) fil, legg til runtime bibliotekavhengighet “org.Jetbrains.Kotlinx: Kotlinx-serialization-Json: 1.0.0 ”til din avhengige blokkering.

For å forstå Kotlin -serialiseringen, bør du ta en titt på følgende eksempler:

Eksempel 1: Program for å serialisere Kotlin -forekomsten til JSON

Vi har serialiserings -API som vil hjelpe oss å jobbe med koden vår. Kotlinx.Serialisering og dens funksjonsunderpakker, inkludert Kotlinx.Serialisering.JSON, inkluderer API. Det er et annet bibliotek “JSON.EncodetoString ”å bruke, som koder for strenger til JSON.

Vi importerer bibliotekene fra Kotlinx.Serialisering. Først kommenterer vi en klasse med @serialiserbar. Vi erklærer en dataklasse her med navnet "Data". Klassedataene kaller en konstruktør med to variabler. Variablene er representert med nøkkelordet “val” og tilordner et navn “Navn” og “Age”. Variabelen “Navn” er satt med typeegenskapen “String” og variabelen “Age” er satt med “Int” Type -egenskap.

Etter dataklasse -erklæringen bruker vi @optin som er et globalt rom. Kotlins opt -in -tilnærming lar deg identifisere APIer som bør brukes med forsiktighet - eller ikke i det hele tatt. Hvis du avgir en erklæring (en klasse, en funksjon, en egenskap eller noe annet) som er nødvendig, vil bruk av den resultere i en advarsel eller feil i koden, og krever at brukeren aktivt vil velge å bruke den. Dette vil sikre at beslutningen om å bruke API på bruksstedet ble tatt bevisst.

Her gir vi en eksperimentell API -markør til den. Deretter har vi hovedfunksjonen som vi lager en variabel "myinfo". Variabelen “Myinfo” heter JSON.EnkodetoString der objektet passerte som en parameter blir serialisert og kodet til en JSON -streng. Som et resultat får du en JSON-formatert streng som representerer objektets nåværende tilstand. Ved å bruke Kotlin Println -funksjonen, vil vi skrive ut verdiene til variablene “MyInfo”.

Utgangen er i JSON -format vist i konsollskjermen nedenfor.

Eksempel 2: Program for å serialisere og deserialisere objekter i Kotlin

Serialisering er konvertering av et objekt til en strøm av byte eller en streng mens deserialisering er restaureringen av den strømmen til et nytt objekt.

I koden ovenfor har vi en implementering av et serialiserbart grensesnitt som lar Kotlin håndtere serialisering automatisk.

Biblioteket Java.IO betyr at vi har importert alle inndata-output-pakken til koden. Deretter erklærer vi en klasse som "spillere" som har et serialiserbart grensesnitt implementert. Klassen "spillere" -objekter kan nå omdannes til strømmer. Konstruktøren er etterlyst for klassen "spillere", og vi lager et objekt "spillere" i den som holdes privat og setter en egenskap av strengtype.

Etter det har vi et nøkkelord "overstyring" med funksjonen toString (). Overstyringens eksplisitt forklarer programmet og unngår feil. En funksjon toString () representerer elementene i et objekt i et lesbart format er viktig for å identifisere og korrigere programmeringsproblemer. Overstyring av toString () vil returnere strengen til objektet “spillere”. Vi har init -blokken der vi initialiserer et objekt “spillere” med elementene i strengen ved hjelp av hashsetof -funksjonen. Deretter har vi en annen serialisert klasse "tennis" der vi setter sine gjenstander ved å lage konstruktøren.

Vi oppretter et objekt “spiller” i klassen “tennis” og kaller spillerklassen i den. I Override ToString () -blokken setter vi felt til en objektspiller. Etter dette har vi en hovedfunksjon der vi erklærer en variabel "tennis" og setter sine felt. Nå bruker du WritObject () -funksjonen fra ObjectOutputStream -klassen, konverterer objektet til en serialisert form, og bruk deretter ReadObject () -funksjonen for å generere et helt nytt objekt fra byte.

På terminalskjermen er utgangen Displaye.

Konklusjon

Målet med denne artikkelguiden er å vise konseptet Kotlin -serialisering på Kotlin -språket. Vi diskuterte temaet serialisering og deserialisering og hvordan vi kan bruke Kotlin -serialiseringsbibliotekene. Vi dekket også eksemplene med kjørekoden for deg.