W tym artykule przeprowadzimy krótką dyskusję na temat serializacji Kotlin.
Co to są serializacja i deserializacja w Kotlin?
Serializacja jest techniką przekształcania danych aplikacji w format, który można wysłać przez sieć lub można zapisać w bazie danych lub pliku. Z drugiej strony deserializacja jest aktem wyodrębniania danych ze zdalnej lokalizacji i przekształcania ich w obiekt czasu wykonywania. Oba są wymaganymi komponentami w większości aplikacji, które wchodzą w interakcje z danymi z stronami zewnętrznymi.
Bufory JSON i protokołu to dwa przykłady formatów serializacji danych, które są szeroko stosowane. Pozwalają na przepływ danych przez systemy zbudowane w dowolnym nowoczesnym języku, ponieważ są one zarówno agnostyczne języka, jak i platformy.
Możliwości serializacji danych w Kotlin można znaleźć w samodzielnym komponencie o nazwie Kotlinx. Serializacja. Biblioteki środowiska wykonawczego i wtyczka gradle-org.Jetbrains.Kotlin.podłącz.serializacja- to dwa główne elementy.
Biblioteki serializacji Kotlin
Wszystkie biblioteki serializacji Kotlin są zawarte w org.Pakiet palenia. Kotlinx to nazwa grupy ludzi. Mają sufiksy reprezentujące format serializacji i zaczynają się od serializacji Kotlinx.
Przykłady:
Serializacja JSON dla projektów Kotlin jest dostarczana przez Org.Jetbrains.Kotlinx: Kotlinx-Serialization-Json.Nie musisz ręcznie dodawać artefaktów specyficznych dla platformy, ponieważ są one obsługiwane automatycznie. Projekty JVM, JS, natywne i międzyplatformowe wykorzystują te same zależności.
Jak wykorzystać serializację Kotlin w kodzie
Zanim przejdziesz do kodu serializacji Kotlin, upewnij się, że skrypt kompilacji jest skonfigurowany, aby umożliwić korzystanie z narzędzi serializacji Kotlin w twoim projekcie.
W budowie projektu.Gradle.plik KTS używa Kotlin („wtyczka.serializacja ”) w bloku wtyczki.
Następnie w twojej kompilacji.gradtuj (.KTS) Plik, dodaj zależność od biblioteki wykonawczej „Org.Jetbrains.Kotlinx: Kotlinx-Serialization-Json: 1.0.0 ”do bloku na utrzymaniu.
Aby zrozumieć serializację Kotlin, powinieneś przyjrzeć się następującym przykładom:
Przykład nr 1: Program serializacji instancji Kotlin do JSON
Mamy interfejs API serializacji, który pomoże nam pracować nad naszym kodem. Kotlinx.Serializacja i jej funkcje, w tym Kotlinx.Serializacja.JSON, dołącz API. Jest inna biblioteka „JSON.enkodetoString ”do użycia, który koduje ciągi do JSON.
Importujemy biblioteki z Kotlinx.Serializacja. Najpierw adnotujemy klasę z @Serializable. Zadeklarujemy tutaj klasę danych o nazwie „Dane”. Dane klasy wywołują konstruktor z dwiema zmiennymi. Zmienne są reprezentowane za pomocą słowa kluczowego „Val” i przypisują nazwę „Nazwa” i „Wiek”. Zmienna „Nazwa” jest ustawiona z właściwością typu „ciąg”, a zmienna „wiek” jest ustawiony z właściwością typu „int”.
Po deklaracji klasy danych używamy @optin, która jest przestrzenią globalną. Podejście opt -in Kotlin pozwala zidentyfikować interfejsy API, które należy wykorzystać z ostrożnością - lub wcale nie. Jeśli złożycie deklarację (klasa, funkcja, właściwość lub cokolwiek innego) wybierz konieczne, używając jej ostrzeżenia lub błędu w kodzie, wymagając od użytkownika aktywnego wybrania go do użycia. Zapewni to świadomość decyzji o użyciu interfejsu API na stronie użytkowania.
Tutaj przekazujemy do niego eksperymentalny znacznik API. Następnie mamy główną funkcję, w której tworzymy zmienną „myinfo”. Zmienna „Myinfo” nazywa się JSON.enkodetostring, w którym obiekt przekazywał parametr, jest serializowany i kodowany do ciągu JSON. W rezultacie otrzymasz ciąg formowany przez JSON reprezentujący bieżący stan obiektu. Korzystając z funkcji Kotlin Println, wydrukujemy wartości zmiennych „myinfo”.
Wyjście jest w formacie JSON pokazanym na ekranie konsoli poniżej.
Przykład nr 2: Program serializowania i deserializowania obiektów w Kotlin
Serializacja to konwersja obiektu na strumień bajtów lub łańcucha, podczas gdy deserializacja jest przywróceniem tego strumienia w nowy obiekt.
W powyższym kodzie mamy implementację interfejsu serializacji, który pozwala Kotlin automatycznie obsługiwać serializację.
Biblioteka Java.IO oznacza, że zaimportowaliśmy wszystkie klasy pakietu wejściowego do kodu do kodu. Następnie deklarujemy klasę jako „gracze”, która ma zaimplementowany serializacyjny interfejs. Obiekty „graczy” klasy można teraz przekształcić w strumienie. Konstruktor jest wywoływany dla klas „graczy” i tworzymy w nim obiekt „gracze”, które są prywatne i ustawia właściwość typu ciągów.
Następnie mamy słowo kluczowe „zastąpienie” za pomocą funkcji toString (). Jawność zastępowania wyjaśnia program i unika błędów. Funkcja ToString () reprezentuje elementy obiektu w czytelnym formacie jest ważne dla identyfikacji i poprawienia problemów z programowaniem. Zastąpienie ToString () zwróci ciąg obiektu „gracze”. Mamy blok init, w którym inicjujemy obiekt „odtwarzaczy” z elementami łańcucha przy użyciu funkcji hashsetof. Następnie mamy kolejną serializowaną klasę „tenis”, w której ustawiamy jego obiekty, tworząc jego konstruktor.
Tworzymy obiekt „gracz” w klasie „Tenis” i nazywamy w nim klasę graczy. W bloku zastępczym toString () ustawiamy pola odtwarzacza obiektowego. Następnie mamy główną funkcję, w której deklarujemy zmienną „tenis” i ustawiamy jej pola. Teraz używając funkcji Funkcja WriteObject () z klasy OBIEMOUTPUTSTEAM, przekonwertuj obiekt na formularz serializowany, a następnie użyj funkcji ReadObject (), aby wygenerować zupełnie nowy obiekt z bajtów.
Na ekranie terminalu wyjście jest wyświetlane.
Wniosek
Celem tego przewodnika w artykule jest pokazanie koncepcji serializacji Kotlin w języku Kotlin. Omówiliśmy temat serializacji i deserializacji oraz sposób korzystania z bibliotek serializacji Kotlin. Omówiliśmy również przykłady z uruchomionym kodem dla Ciebie.