Preskoči na sadržaj
100% lokalno

JSON u Kotlin data klasu

Pretvori JSON primjer u spremnu Kotlin data klasu.

Unos
Rezultat

JSON u Kotlin data klasu

Zalijepi JSON odgovor i ovaj alat ga pretvara u spremnu Kotlin data klasu, zaključujući tip svakog polja izravno iz vrijednosti koje daješ. Napravljen je za Android i backend programere koji trebaju brz model za API odgovor, datoteku konfiguracije ili primjer korisnog opterećenja, bez ručnog tipkanja imena svojstava i tipova ili traženja dodatka IDE-a.

Postavi naziv root klase i odaberi kako se ugneždeni objekti pojavljuju: ugneždeni u root klasu ili deklarirani kao odvojene klase na najvišoj razini. Prebacuj se između val za nepromjenjiva svojstva i var kada model mora biti mutable, te uključi default vrijednosti kako bi svako svojstvo imalo razumnu zadanu vrijednost (prazan string, nula, emptyList()) kako bi se instance mogle stvoriti s manje argumenata. Dodaj @Serializable i @SerialName anotacije za kotlinx.serialization, ili @SerializedName za Gson, i odaberi uvlačenje od 2 razmaka, 4 razmaka ili tabulatora kako bi odgovarao stilu tvoga projekta.

Nestale ili null vrijednosti automatski postaju nullable tipovi, nizovi postaju List<T> s tipom elementa zaključenom iz svakog stavke, a objekti s istim oblikom se skupljaju u jednu ponovu korištenu klasu umjesto da se dupliraju. Opcija "Spoji polja u polju niza" kontrolira je li taj tip stavke izgrađen iz svakog elementa u nizu ili samo prvog, što je korisno za vrlo veliki ili neujednačeno oblikovan niz. Kada je JSON na vrhu razine sam niz, alat umota zaključeni tip stavke u List za tebe.

Sve se izvršava lokalno u tvom pregledniku — tvoj JSON se nikada ne učitava niti se šalje na server, pa je sigurno zalijepiti stvarne API odgovore i interna opterećenja. Kopiraj generirani Kotlin, preuzmi ga kao .txt datoteku, ili pošalji izlaz natrag u ulaz kako bi ga ponovno pretvorio s različitim opcijama.

FAQ

Kako alat odlučuje koja polja su nullable?
Polje postaje nullable kada nedostaje iz najmanje jednog objekta uzorka ili kada je jedina promatrana vrijednost null. Polje prisutno s ne-null vrijednosti u svakom objektu ostaje ne-nullable.
Može li generirati kotlinx.serialization ili Gson anotacije koje trebam?
Da. Odaberi kotlinx.serialization da dodaš @Serializable i @SerialName, ili Gson da dodaš @SerializedName s originalnim JSON ključem, tako da se klasa pravilno deserijalizira čak i kada se naziv svojstva razlikuje.
Što se dogoduje s JSON poljem čiji objekti imaju različite oblike?
Njihova polja se spajaju u jednu data klasu, s bilo kojim poljem koje nedostaje iz nekih elemenata označenim kao nullable. Isključi "Spoji polja u polju niza" da zaključiš tip samo iz prvog elementa umjesto.
Podržava li ugneždene objekte?
Da. Ugneždeni objekt postaje vlastita data klasa, ili deklarirana u root klasu ili kao odvojena klasa na najvišoj razini, ovisno o opciji ugniježđenja.
Je li moj JSON učitan bilo gdje?
Ne. Pretvaranje se izvršava u potpunosti u tvom pregledniku — tvoj JSON nikada ne napušta tvoj uređaj.