DokumentyObrazyMediaNarzędzia PDF

JSON na Kotlin Data Class

Generuj klasy data class Kotlina z JSON. Bezplatnie, w przegladarce.

Processed in your browser

Od JSON do Data Class Kotlina w sekundach

Gotowy dla Androida i Kotlina

Generuje kod kompatybilny z Retrofit, kotlinx.serialization i Room. Wklej bezposrednio do swojego projektu.

W 100% prywatny

Twoj JSON z API nigdy nie opuszcza przegladarki. Bez rejestracji, bez telemetrii.

Poprawne typy

Wnioskuje String, Int, Long, Double, Boolean, List i typy nullable z ?. Pelna obsluga zagniezdzen.

Natychmiastowy

Generowanie w czasie rzeczywistym podczas pisania. Bez przyciskow, bez oczekiwania.

Trzy kroki, żadnych komplikacji

1

Wklej swoj JSON

Wklej JSON z Twojego API lub pliku konfiguracyjnego. Moze to byc zagniezdony obiekt lub tablica.

2

Natychmiastowe generowanie

Narzedzie automatycznie generuje klasy data class Kotlina z wywnioskowanymi typami i adnotacjami serializacji.

3

Skopiuj kod

Skopiuj wygenerowane klasy data class i uzyj ich bezposrednio w projekcie Android lub Kotlin.

Masz pytania?

Klasy data class to specjalna funkcja Kotlina, ktora automatycznie generuje metody equals(), hashCode(), toString() i copy() na podstawie wlasciwosci zadeklarowanych w glownym konstruktorze. Sa idealne do reprezentowania modeli danych, szczegolnie odpowiedzi REST API, poniewaz eliminuja kod szablonowy, ktory Java wymagalaby pisac recznie lub za pomoca Lomboka.

Domyslnie generowane sa wlasciwosci val (niezmienne), co jest zalecana praktyka w Kotlinie dla modeli danych. val oznacza, ze wartosci nie mozna ponownie przypisac po inicjalizacji, co sprawia, ze obiekty sa bardziej przewidywalne i bezpieczne watkowo. Uzyj var tylko jesli po utworzeniu obiektu musisz go mutowac.

Tak. Dodawana jest adnotacja @Serializable z kotlinx.serialization, oficjalnej biblioteki serializacji JSON Kotlina. @SerialName jest rowniez dodawany, gdy nazwa pola JSON rozni sie od konwencji camelCase Kotlina, na przyklad gdy JSON uzywa snake_case.

Gdy wartosc w JSON jest null lub gdy pole nie jest obecne we wszystkich obiektach tablicy, wlasciwosc jest generowana jako typ nullable z operatorem ?. Na przyklad String? zamiast String. W Kotlinie rozroznienie miedzy typami nullable i non-nullable jest czescia systemu typow, a kompilator weryfikuje to w czasie kompilacji.

Przy tworzeniu aplikacji Android klasy data class Kotlina sa uzywane glownie do modelowania odpowiedzi REST API z Retrofit, przechowywania danych w lokalnych bazach danych z Room, serializacji obiektow do przekazywania miedzy Activity/Fragment jako Parcelable, oraz jako modele w architekturach MVVM lub MVI. Od czasu gdy Google przyjelo Kotlin jako oficjalny jezyk dla Androida w 2019 roku, klasy data class sa de facto standardem.

Kotlin na Androida, kotlinx.serialization i Retrofit dla typowo bezpiecznych API

W maju 2019 roku Google oglosilo, ze Kotlin stal sie preferowanym jezykiem do tworzenia aplikacji Android, wypieraja Jave jako pierwszy wybor. Od tamtej pory adopcja Kotlina w Androidzie wzrosla do tego stopnia, ze dzis ponad 95% sposrod 1000 najpopularniejszych aplikacji w Google Play uzywa Kotlina. Klasy data class sa jednym z najbardziej cenionych funkcji przez programistow Android, poniewaz eliminuja kod szablonowy Java POJO.

kotlinx.serialization to oficjalna biblioteka serializacji JetBrains dla Kotlina. W odroznieniu od Gson lub Moshi jest w pelni natywna dla Kotlina, dziala z kompilacja Kotlin Multiplatform Mobile, natywnie obsluguje coroutines i generuje kod w czasie kompilacji zamiast uzywa c refleksji w czasie wykonania. Adnotacja @Serializable na klasie data class wystarczy do serializacji i deserializacji JSON.

Retrofit, opracowany przez Square, to najpopularniejsza biblioteka do konsumowania REST API na Androida. W polaczeniu z kotlinx.serialization lub Gson jako konwerterem umozliwia definiowanie interfejsow API z adnotacjami (@GET, @POST, @Body), a Retrofit automatycznie generuje implementacje. Klasy data class generowane przez to narzedzie sa bezposrednio kompatybilne z Retrofit jako typy zwracane lub typy parametrow tresci zapytania.