Serializzazione Kotlin

Serializzazione Kotlin
La condivisione del codice su piattaforme non è possibile. Io, trasformazioni, threading e serializzazione, per menzionarne alcuni, sono tutti gestiti in modo diverso su ogni piattaforma che si desidera supportare. Esistono già diverse librerie che supportano la serializzazione Kotlin e possono persino produrre codice Kotlin, con il Moshi di Square che è il più noto.

In questo articolo, avremo una breve discussione sulla serializzazione Kotlin.

Cosa sono la serializzazione e la deserializzazione a Kotlin?

La serializzazione è la tecnica per trasformare i dati di un'applicazione in un formato che può essere inviato su una rete o può essere salvato nel database o nel file. La deserializzazione, d'altra parte, è l'atto di estrarre i dati da una posizione remota e trasformarli in un oggetto di runtime. Sono entrambi componenti richiesti nella maggior parte delle app che interagiscono con i dati con parti esterne.

I buffer JSON e protocollo sono due esempi di formati di serializzazione dei dati ampiamente utilizzati. Consentono ai dati di fluire attraverso i sistemi integrati in qualsiasi lingua moderna perché sono sia agnostici di linguaggio che di piattaforma.

Le capacità di serializzazione dei dati in Kotlin possono essere trovate in un componente autonomo chiamato Kotlinx. serializzazione. Le librerie di runtime e il plugin-ORG gradle.jetbrains.Kotlin.collegare.serializzazione: sono i due componenti principali.

Biblioteche di serializzazione Kotlin

Tutte le librerie di serializzazione Kotlin sono contenute nell'organizzazione.pacchetto jetbrains. Kotlinx è un nome per un gruppo di persone. Hanno suffissi che rappresentano il formato di serializzazione e iniziano con Kotlinx-Serialization.

Esempi:

La serializzazione JSON per i progetti Kotlin è fornita da ORG.jetbrains.Kotlinx: Kotlinx-Serialization-Json.
La serializzazione CBOR è fornita da Org.jetbrains.Kotlinx: Kotlinx-Serialization-Cbor.

Non è necessario aggiungere manufatti specifici per la piattaforma perché vengono gestiti automaticamente. I progetti JVM, JS, nativi e multipiattaforma utilizzano le stesse dipendenze.

Come utilizzare la serializzazione Kotlin nel codice

Prima di procedere con il codice di serializzazione Kotlin, assicurati che lo script di build sia configurato per consentire di utilizzare gli strumenti di serializzazione Kotlin nel progetto.

Nel tuo progetto Build.Gradle.File KTS Utilizzare il Kotlin ("Plugin.serializzazione ”) nel blocco del plug -in.

Quindi, nella tua build.gradle (.KTS) FILE, Aggiungi la dipendenza della libreria di runtime “Org.jetbrains.Kotlinx: Kotlinx-Serialization-Json: 1.0.0 "al blocco delle tue persone a carico.

Per capire la serializzazione Kotlin, dovresti dare un'occhiata ai seguenti esempi:

Esempio n. 1: programma per serializzare l'istanza di Kotlin in JSON

Abbiamo l'API di serializzazione che ci aiuterà a lavorare sul nostro codice. Il kotlinx.serializzazione e pacchetti secondari di funzionalità, incluso Kotlinx.serializzazione.JSON, include l'API. C'è un'altra biblioteca “JSON.codetostring ”da usare, che codifica le stringhe su JSON.

Importiamo le biblioteche dal Kotlinx.serializzazione. Innanzitutto, annotiamo una classe con @Serializable. Dichiariamo una classe di dati qui con il nome "dati". I dati di classe chiama un costruttore con due variabili. Le variabili sono rappresentate con la parola chiave "val" e assegnano un nome "nome" e "età". La variabile "nome" è impostata con la proprietà tipo "stringa" e la variabile "età" è impostata con proprietà tipo "int".

Dopo la dichiarazione della classe di dati, utilizziamo @optin che è uno spazio globale. L'approccio opt -in di Kotlin ti consente di identificare le API che dovrebbero essere utilizzate con cautela - o per niente. Se si effettua una dichiarazione (una classe, una funzione, una proprietà o qualsiasi altra cosa) è necessaria, utilizzandola comporterà un avviso o un errore nel codice, richiedendo all'utente di opt-in per utilizzarlo. Ciò garantirà che la decisione di utilizzare l'API sul sito di utilizzo sia stata presa consapevolmente.

Qui, passiamo un marcatore API sperimentale. Quindi, abbiamo la funzione principale di DEFINE in cui creiamo una variabile "myinfo". La variabile "myinfo" si chiama json.codetostring in cui l'oggetto è passato come parametro viene serializzato e codificato su una stringa JSON. Di conseguenza, otterrai una stringa formatta da JSON che rappresenta lo stato corrente dell'oggetto. Usando la funzione Kotlin Println, stamperemo i valori delle variabili "myinfo".

L'output è in formato JSON mostrato nella schermata della console in basso.

Esempio n. 2: programma per serializzare e deserializzare gli oggetti in Kotlin

La serializzazione è la conversione di un oggetto in un flusso di byte o una stringa mentre la deserializzazione è il ripristino di quel flusso in un nuovo oggetto.

Nel codice sopra, abbiamo un'implementazione di un'interfaccia serializzabile che consente a Kotlin di gestire automaticamente la serializzazione.

La biblioteca Java.IO significa che abbiamo importato tutte le classi del pacchetto input-output nel codice. Quindi, dichiariamo una classe come "giocatori" che ha un'interfaccia serializzabile implementata. Gli oggetti "giocatori" di classe ora possono essere trasformati in flussi. Il costruttore è chiamato per la classe "giocatori" e creiamo un oggetto "giocatori" in esso mantenuto privato e imposta una proprietà di tipo di stringa.

Successivamente, abbiamo una parola chiave "sovraccarico" con la funzione toString (). L'esplicitazione di Override spiega il programma ed evita errori. Una funzione toString () rappresenta gli elementi di un oggetto in un formato leggibile è importante per identificare e correggere i problemi di programmazione. L'override toString () restituirà la stringa dell'oggetto "giocatori". Abbiamo il blocco Init in cui inizializziamo un oggetto "giocatori" con gli elementi della stringa usando la funzione HashsetOf. Quindi, abbiamo un altro "tennis" di classe serializzata in cui impostiamo i suoi oggetti creando il suo costruttore.

Creiamo un oggetto "giocatore" nella classe "tennis" e chiamiamo la classe dei giocatori. Nel blocco di Override ToString (), impostiamo i campi di un lettore oggetto. Dopo questo, abbiamo una funzione principale in cui dichiariamo un "tennis" variabile e impostiamo i suoi campi. Ora utilizzando la funzione writeObject () dalla classe ObjectOutputStream, converti l'oggetto in una forma serializzata, quindi usa la funzione readobject () per generare un oggetto nuovo di zecca dai byte.

Nella schermata del terminale, l'uscita è visualizzata.

Conclusione

L'obiettivo di questa guida all'articolo è mostrare il concetto di serializzazione Kotlin in lingua Kotlin. Abbiamo discusso dell'argomento della serializzazione e della deserializzazione e come utilizzare le biblioteche di serializzazione Kotlin. Abbiamo anche coperto gli esempi con il codice in esecuzione per te.