Preskočiť na obsah

JSON na PHP triedu

Preveďte vzorku JSON na typovanú PHP triedu s konštruktorom, fromArray a toArray.

Vstup
Výstup

JSON na PHP triedu

Vložte objekt alebo pole JSON a tento nástroj odvodí typ pre každé pole, potom vygeneruje hotovú PHP triedu: typované vlastnosti, konštruktor, statickú továrňu fromArray() a metódu toArray() na konverziu objektu späť na jednoduché pole. Vnorené objekty sa automaticky stanú vlastnými triedami a rovnaké tvary sa znova využívajú namiesto duplikácie, takže záväzok s niekoľkými podobne štruktúrovanými sekciami stále produkuje kompaktný súbor.

Názov triedy a názov menného priestoru pomenúvajú koreňovú triedu a voliteľne ju obaľujú v mennom priestore PHP. Propagovaný konštruktor PHP 8 píše vlastnosti priamo v podpise konštruktora namiesto ich samostatného deklarovania — vypnite ho pre klasický explicitný konštruktor. Generovať gettery a settery pridáva metódy prístupu (isX() pre logické hodnoty, getX()/setX() inak) namiesto priameho vystavenia vlastností. declare(strict_types=1) pridáva striktný typ PHP a komentáre Docblock anotujú každú vlastnosť jej odvodením typom. Polia poľa určujú, či je zoznam typovaný ako jednoduché pole alebo zdokumentovaný typom svojho prvku, ako napríklad string[], pretože PHP nemá generiky na to v type.

Pole videné ako null alebo chýbajúce z niektorých prvkov poľa objektov sa generuje ako nullable — s bezpečnou kontrolou isset() keď potrebuje vytvoriť vnorený objekt alebo mapovať zoznam a inak s predvolením null-coalescing. Kľúč, ktorý koliduje s kľúčovým slovom PHP alebo začína číslicou, sa premenuje na platné meno vlastnosti a každá vygenerovaná vlastnosť si zachová pôvodný kľúč JSON ako svoj kľúč poľa v fromArray() a toArray().

Všetko sa spúšťa lokálne vo vašom prehliadači — JSON, ktorý vložíte a ktorý môže obsahovať skutočné odozvy API alebo údaje o konfigurácii, sa nikdy nenachádzajú nikde. Skopírujte vygenerovanú triedu, stiahnite si ju ako súbor .txt alebo pošlite výstup späť na vstup na ďalšie spresnenie.

Časté otázky

Akú verziu PHP cieli generovaný kód?
PHP 8.0 alebo novší, pretože propagované vlastnosti konštruktora a zmiešaný typ sú vlastnosti PHP 8. Vypnite možnosť propagovaného konštruktora, ak potrebujete výstup kompatibilný s PHP 7.
Ako sa spracovávajú vnorené objekty?
Každý odlišný tvar objektu sa stane vlastnou triedou so svojimi vlastnými metódami fromArray() a toArray(). Dve polia s rovnakým tvarom znova používajú tú istú vygenerovanú triedu namiesto jej duplikácie.
Čo sa stane s poľom, ktoré je niekedy null alebo chýba?
Generuje sa ako nullable typované pole. Skaláry sa nastavujú na null s operátorom null-coalescing; vnorené objekty a zoznamy objektov používajú kontrolu isset(), takže fromArray() nikdy nevolá metódu na chýbajúcich údajoch.
Môžem vygenerovať viacero tried z jednej vzorky JSON?
Áno. Každý vnorený objekt vo vzorke produkuje svoju vlastnú triedu v tom istom súbore v poradí závislosti, takže je súbor pripravený na okamžité použitie.
Je môj JSON niekde nahraný?
Nie. Generovanie tried prebieha úplne vo vašom prehliadači — váš JSON nikdy neopúšťa vaše zariadenie.