Přeskočit na obsah

JSON na PHP třídu

Převeďte vzorek JSON na typovanou PHP třídu s konstruktorem, fromArray a toArray.

Vstup
Výstup

JSON na PHP třídu

Vložte objekt nebo pole JSON a tento nástroj odvodí typ pro každé pole, poté vygeneruje hotovou PHP třídu: typované vlastnosti, konstruktor, statickou továrnu fromArray() a metodu toArray() na konverzi objektu zpět na jednoduché pole. Vnořené objekty se automaticky stanou vlastními třídami a stejné tvary se znovu používají místo duplikace, takže datová sada s několika podobně strukturovanými sekcemi stále produkuje kompaktní soubor.

Název třídy a název jmenného prostoru pojmenovávají kořenovou třídu a volitelně ji zabalují v jmenném prostoru PHP. Povýšený konstruktor PHP 8 zapisuje vlastnosti přímo v podpisu konstruktoru místo jejich samostatného deklarování — vypněte jej pro klasický explicitní konstruktor. Generovat gettery a settery přidává metody přístupu (isX() pro logické hodnoty, getX()/setX() jinak) místo přímého vystavení vlastností. declare(strict_types=1) přidává přísný typ PHP a komentáře Docblock anotují každou vlastnost jejím odvozeným typem. Pole pole určují, zda je seznam typován jako jednoduché pole nebo zdokumentován typem svého prvku, jako je string[], protože PHP pro to nemá generika v typové nápovědě.

Pole viděné jako null nebo chybějící z některých prvků pole objektů se generuje jako nullable — s bezpečnou kontrolou isset() když potřebuje vytvořit vnořený objekt nebo mapovat seznam a jinak s výchozí hodnotou null-coalescing. Klíč, který koliduje s klíčovým slovem PHP nebo začíná číslicí, se přejmenuje na platný název vlastnosti a každá vygenerovaná vlastnost si zachová původní klíč JSON jako svůj klíč pole v fromArray() a toArray().

Všechno běží lokálně ve vašem prohlížeči — JSON, který vložíte a který může obsahovat skutečné odpovědi API nebo konfigurační data, se nikdy nigdje neodesílá. Zkopírujte vygenerovanou třídu, stáhněte si ji jako soubor .txt nebo odešlete výstup zpět na vstup pro další upřesnění.

Časté dotazy

Jakou verzi PHP cílí generovaný kód?
PHP 8.0 nebo novější, protože povýšené vlastnosti konstruktoru a smíšený typ jsou funkce PHP 8. Vypněte možnost povýšeného konstruktoru, pokud potřebujete výstup kompatibilní s PHP 7.
Jak se zpracovávají vnořené objekty?
Každý rozdílný tvar objektu se stane vlastní třídou s vlastními metodami fromArray() a toArray(). Dvě pole se stejným tvarem opakovaně používají stejnou vygenerovanou třídu místo jejího duplikování.
Co se stane s polem, které je někdy null nebo chybí?
Generuje se jako nullable typované pole. Skaláry jsou výchozí na null s operátorem null-coalescing; vnořené objekty a seznamy objektů používají kontrolu isset(), takže fromArray() nikdy nevolá metodu na chybějících datech.
Mohu vygenerovat více tříd z jednoho vzorku JSON?
Ano. Každý vnořený objekt ve vzorku produkuje svou vlastní třídu ve stejném souboru v pořadí závislostí, takže je soubor připraven k okamžitému použití.
Je můj JSON někam nahrán?
Ne. Generování tříd probíhá zcela ve vašem prohlížeči — váš JSON nikdy neopustí vaše zařízení.