Ugrás a tartalomhoz
100% helyi

JSON-ből Java osztály

JSON minta alapján Java osztályok generálása, automatikusan kikövetkeztetett beágyazott típusokkal és generikus listákkal.

Bemenet
Kimenet

JSON-ből Java osztály

Illessz be egy JSON mintát, és ez az eszköz létrehozza az objektum reprezentálásához szükséges Java osztályokat, a mezőtípusokat, a beágyazott objektumtípusokat és a generikus listaelem-típusokat közvetlenül az Ön által megadott értékekből kikövetkeztetve. Háttér-fejlesztőknek készült, akik API-választ vagy konfigurációs fájlt kapnak és szükségük van egy begépelt modellre a deszerializáláshoz, anélkül, hogy manuálisan minden mezőt megírnának.

Válassza ki, hogyan legyenek annotálva a mezők: semmilyen, Jackson @JsonProperty vagy Gson @SerializedName, amelyek az eredeti JSON-kulcsot viszik, így a szerializáció még akkor is egyezik, ha a mezőt camelCase-re nevezik át. Kapcsolja ki az getter és setter értékeket egy egyszerű osztályhoz nyilvános mezőkkel, vagy helyettesítse őket Lombok @Data vagy Java record-okkal, ahol az összetevők a mezők helyett állnak. Az Integer, Boolean, Double wrapper típusok mindenütt kényszeríthetők primitívek helyett; az eszköz mindig wrapper-t használ, ha az érték igazán opcionális, mivel az primitív soha nem tarthat null-t. Csomag-deklaráció kerül hozzáadásra, ha meg van adva, és a beágyazott objektumok statikus beágyazott osztályokként egy fájlban vagy önálló felső szintű osztályokként jelennek meg.

Ha az ugyanaz az alakzat többször előfordul — ismételt objektumok egy tömbben, vagy két testvér mező azonos szerkezettel — az eszköz egyetlen generált osztályt használ fel újra az ismétlése helyett. A tömbben különböző alakzatokkal megfigyelható mezők egyetlen osztályba merülnek, az egyes elemekből hiányzó mezők választhatóként vannak megjelölve. A számok int formában maradnak, ha a 32 bites tartományba illeszkednek, és szükség szerint kiterjesztik long vagy double felé; a JSON-kulcs, amely nem lehet Java-azonosító, például egy emoji, biztonsággal generált névre esik vissza.

Minden helyileg fut böngészőjében — a JSON-minta soha nem kerül feltöltésre vagy továbbításra egy szerverhez. Másolja be az generált osztályokat a projektbe, töltse le .txt fájlként, vagy küldje vissza a kimenetet a bemenetre, hogy egy másik eszközt fusson rajta.

Gyakori kérdések

Kezel beágyazott objektumokat és tömböket?
Igen. A beágyazott objektumok saját osztállyá válnak (beágyazottak vagy önállók, az osztály elrendezésének beállításától függően) és a tömbök az kikövetkeztetett elem típusának generikus java.util.List-jévé válnak.
Mi történik, ha egy mező hiányzik az egyes minta objektumokból?
Választhatóként van megjelölve és, ha primitív, frissítésre kerül a wrapper típusára (Integer, Boolean, Double), így a mező jogosan lehet null.
Használhatok Lombok vagy Java rekordokat kézi getter és setter helyett?
Igen. Kapcsolja be a Lombok @Data-t a @Data-val és privát mezőkkel ellátott osztályhoz, vagy használjon Java rekordot egy rekord generálásához az összetevőkkel mezők helyett — mindkettő helyettesíti a kézi eléréseket.
Hogyan választódnak ki a mező nevek, ha a JSON-kulcs nem érvényes Java-azonosító?
A kulcs camelCase-re konvertálódik; egy kulcs, amely üres vagy kulcsszó-ütköző nevet állít elő, egy biztonságos generált névre esik vissza, például field vagy egy kulcsszó véghangsúlya.
A JSON-om valahova feltöltésre kerül?
Nem. Az osztály generálás teljes mértékben böngészőjében fut — a JSON-minta soha nem kerül szerverhez.