Sări la conținut
Complet local

JSON la clasă Java

Transformați un exemplu JSON în clase Java, cu tipuri imbricate și liste generice deduse automat.

Intrare
Ieșire

JSON la clasă Java

Lipiti un exemplu JSON și acest instrument generează clasele Java necesare pentru a-l reprezenta, deducând tipuri de câmpuri, tipuri de obiecte imbricate și tipuri de elemente din lista generică direct din valorile furnizate. A fost construit pentru programatorii backend care primesc un răspuns API sau un fișier de configurare și au nevoie de un model tipat pentru a-l deserializa, fără a scrie manual fiecare câmp.

Alegeți modul în care sunt adnotate câmpurile: niciunul, Jackson's @JsonProperty, sau Gson's @SerializedName, fiecare purtând cheia JSON originală, astfel încât serializarea să se potrivească în continuare după redenumirea unui câmp în camelCase. Dezactivați getter și setter pentru o clasă simplă cu câmpuri publice, sau înlocuiți-le cu Lombok's @Data sau cu un Java record, în care componentele iau locul câmpurilor și accesorilor. Tipurile wrapper (Integer, Boolean, Double) pot fi forțate peste tot în loc de primitive; instrumentul folosește întotdeauna un wrapper atunci când o valoare este cu adevărat opțională, deoarece un primitiv nu poate niciodată să dețină null. O declarație de pachet este adăugată atunci când este furnizată, iar obiectele imbricate sunt afișate ca clase statice imbricate într-un singur fișier sau ca clase separate de nivel superior.

Atunci când aceeași formă apare mai mult de o dată — obiecte repetate într-o matrice, sau două câmpuri surori cu structură identică — instrumentul reutilizează o singură clasă generată în loc să o duplice. Câmpurile observate cu forme diferite într-o matrice sunt fuzionate într-o singură clasă, cu câmpuri absente din unele elemente marcate ca opționale. Numerele rămân ca int atunci când se potrivesc într-un interval de 32 de biți și se lărgesc la long sau double după cum este necesar; o cheie JSON care nu poate fi un identificator Java, cum ar fi un emoji, revine la un nume generat sigur.

Tot se execută local în browserul dvs. — niciun exemplu JSON nu este niciodată încărcat sau transmis pe un server. Copiați clasele generate în proiectul dvs., descărcați-le ca fișier .txt, sau trimiteți rezultatul înapoi la intrare pentru a executa un alt instrument pe el.

FAQ

Tratează obiecte imbricate și matrice?
Da. Obiectele imbricate devin propria lor clasă (imbricată sau separată, în funcție de opțiunea de organizare a clasei) și matricile devin o List generică din tipul de element dedus.
Ce se întâmplă cu un câmp care lipsește din unele obiecte de eșantion?
Este marcat ca opțional și, dacă este un primitiv, este actualizat la tipul său wrapper (Integer, Boolean, Double), astfel încât câmpul să poată fi legitim null.
Pot folosi Lombok sau Java record în loc de getter și setter manual?
Da. Activați Lombok @Data pentru o clasă adnotată cu @Data și câmpuri private, sau Utilizați Java record pentru a genera un record cu câmpurile ca componente — ambele înlocuiesc accesorii scriși manual.
Cum sunt aleși numele câmpurilor atunci când o cheie JSON nu este un identificator Java valid?
Cheia este convertită în camelCase; o cheie care produce un nume gol sau de coliziune de cuvânt cheie revine la un nume generat sigur, cum ar fi field sau un cuvânt cheie cu o liniuță de subliniere la sfârșit.
JSON-ul meu este încărcat undeva?
Nu. Generarea de clase se execută în întregime în browserul dvs. — exemplul dvs. JSON nu este niciodată trimis pe un server.