Preskoči na sadržaj
100% lokalno

JSON u PHP klasu

Pretvori JSON uzorak u tipiziranu PHP klasu s konstruktorom, fromArray i toArray metodama.

Unos
Rezultat

JSON u PHP klasu

Zalijepite JSON objekt ili niz i ovaj alat zaključuje tip za svako polje, zatim generira gotovu PHP klasu: tipizirana svojstva, konstruktor, statičku fromArray() tvorničku metodu i toArray() metodu za vraćanje objekta u obični niz. Ugniježđeni objekti postaju svoje klase automatski, a identični oblici se ponavljaju umjesto umnožavanja, tako da opterećenje s više sličnih dijelova i dalje daje kompaktnu datoteku.

Naziv klase i namespace nazivaju glavnu klasu i, opciono, je umotavaju u PHP namespace. PHP 8 promoted constructor piše svojstva direktno u signaturici konstruktora umjesto odvojenog deklariranja — isključite to za klasičan eksplicitan konstruktor. Generiraj getters i setters dodaje pristupne metode (isX() za boolean, getX()/setX() inače) umjesto izlaganja svojstava direktno. declare(strict_types=1) dodaje PHP header, a docblock komentari označavaju svako svojstvo s njegovim zaključenim tipom. Polja niza odlučuje je li niz tipiziran kao običan niz ili dokumentiran s tipom elementa.

Polje koje je viđeno kao null ili nedostaje iz nekih elemenata niza objekata generirano je kao nullable — s sigurnom isset() provjerom kada trebate graditi ugniježđeni objekt ili mapirati niz, i null-coalescing defaultom inače. Ključ koji se sudara s PHP ključnom riječju ili počinje znamenkom preimenovan je u valjano svojstvo, a svako generirano svojstvo čuva originalni JSON ključ kao njegov ključ niza u fromArray() i toArray().

Sve se izvršava lokalno u vašem pregledniku — JSON koji zalijepite nikad se ne učitava nigdje. Kopirajte generirane klase, preuzmite kao .txt datoteku ili pošaljite izlaz natrag u ulaz da ga poboljšate.

FAQ

Koju verziju PHP-a koristi generirani kod?
PHP 8.0 ili novije, jer promoted constructor svojstva i mixed tip su PHP 8 funkcionalnosti. Isključite promoted-constructor opciju ako trebate PHP 7 kompatibilan izlaz.
Kako se rukuje ugniježđenim objektima?
Svaki distinktivni oblik objekta postaje vlastita klasa s vlastitim fromArray() i toArray() metodama. Dva polja s istim oblikom ponavljaju istu generianu klasu umjesto umnožavanja.
Što se događa s poljem koje je ponekad null ili nedostaje?
Generirano je kao nullable, tipizirana svojstva. Skalarni tipovi koriste null-coalescing operator; ugniježđeni objekti i popisi objekata koriste isset() provjeru tako da fromArray() nikada ne poziva metodu na nedostajućim podacima.
Mogu li generirati više klasa iz jednog JSON uzorka?
Da. Svaki ugniježđeni objekt u uzorku stvara vlastitu klasu u istoj datoteci, redoslijedom ovisnosti, tako da je datoteka odmah gotova za upotrebu.
Je li moj JSON učitan negdje?
Ne. Generiranje klase se izvršava u potpunosti u vašem pregledniku — vaš JSON nikada ne napušta vašu uređaj.