Przejdź do treści
100% lokalnie

JSON na klasę danych Kotlin

Konwertuj JSON na gotową klasę danych Kotlin.

Wejście
Wynik

JSON na klasę danych Kotlin

Wklej odpowiedź JSON, a to narzędzie przekonwertuje ją na gotową klasę danych Kotlin ze wszystkimi typami pól wywnioskowanymi bezpośrednio z podanych wartości. Jest przeznaczone dla programistów Android i backendu, którzy potrzebują szybkiego modelu dla odpowiedzi API, pliku konfiguracyjnego lub przykładowego payloadu bez ręcznego wpisywania nazw właściwości i typów.

Ustaw nazwę klasy głównej i wybierz, jak mają się pojawić zagnieżdżone obiekty: zagnieżdżone w klasie głównej lub zadeklarowane jako oddzielne klasy na najwyższym poziomie. Przełączaj się między val dla właściwości niezmiennych i var gdy model musi być zmienny, i włącz wartości domyślne aby każda właściwość miała sensowną wartość domyślną (pusty ciąg, zero, emptyList()) aby instancje mogły być tworzone z mniejszą liczbą argumentów. Dodaj adnotacje @Serializable i @SerialName dla kotlinx.serialization lub @SerializedName dla Gson, i wybierz wcięcie 2 spacji, 4 spacje lub tabulację aby pasowało do stylu twojego projektu.

Brakujące lub null wartości automatycznie stają się typami nullable, tablice stają się List<T> z typem elementu wnioskowanym z każdego elementu, a obiekty o tym samym kształcie są łączone w jedną ponownie używaną klasę zamiast być duplikowane. Opcja "scalaj pola w elementach tablicy" kontroluje czy typ elementu jest budowany ze wszystkich elementów w tablicy czy tylko z pierwszego, co jest przydatne dla bardzo dużej lub nierówno ukształtowanej tablicy. Gdy JSON na najwyższym poziomie jest sam tablicą, narzędzie owija wnioskowany typ elementu w List.

Wszystko działa lokalnie w twojej przeglądarce - twój JSON nigdy nie jest przesyłany ani nie jest wysyłany na serwer, więc bezpiecznie możesz wkleić rzeczywiste odpowiedzi API i wewnętrzne payloady. Skopiuj wygenerowany Kotlin, pobierz go jako plik .txt, lub wyślij wynik z powrotem do wejścia aby przekonwertować go ponownie z innymi opcjami.

Częste pytania

Jak narzędzie decyduje, które pola są nullable?
Pole staje się nullable gdy brakuje go w co najmniej jednym obiekcie próbki lub gdy jego jedyną obserwowaną wartością jest null. Pole obecne z wartością nie-null w każdym obiekcie pozostaje nie-nullable.
Czy może generować adnotacje kotlinx.serialization lub Gson, których potrzebuję?
Tak. Wybierz kotlinx.serialization aby dodać @Serializable i @SerialName, lub Gson aby dodać @SerializedName z oryginalnym kluczem JSON, tak aby klasa deserializowana się poprawnie nawet gdy nazwa właściwości się różni.
Co się stanie z tablicą JSON, której obiekty mają różne kształty?
Ich pola zostaną scalone w jedną klasę danych, z każdym polem brakującym w niektórych elementach oznaczonym nullable. Wyłącz "scalaj pola w elementach tablicy" aby zamiast tego wnioskować typ tylko z pierwszego elementu.
Czy obsługuje obiekty zagnieżdżone?
Tak. Zagnieżdżony obiekt staje się własną klasą danych, deklarowaną albo w obrębie klasy głównej albo jako oddzielna klasa na najwyższym poziomie, w zależności od opcji zagnieżdżania.
Czy mój JSON jest przesyłany gdziekolwiek?
Nie. Konwersja odbywa się całkowicie w twojej przeglądarce - twój JSON nigdy nie opuszcza twojego urządzenia.