Vai al contenuto
100% locale

JSON a classe PHP

Trasforma un campione JSON in una classe PHP tipizzata con costruttore, fromArray e toArray.

Ingresso
Uscita

JSON a classe PHP

Incolla un oggetto JSON o un array e questo strumento deduce un tipo per ogni campo, quindi genera una classe PHP pronta all'uso: proprietà tipizzate, un costruttore, una factory fromArray() statica e un metodo toArray() per convertire l'oggetto in un array semplice. Gli oggetti annidati diventano le loro proprie classi automaticamente, e le forme identiche vengono riutilizzate anziché duplicate, quindi un payload con più sezioni strutturate in modo simile produce comunque un file compatto.

Il nome della classe e il nome dello spazio dei nomi denominano la classe radice e, facoltativamente, la avvolgono in uno spazio dei nomi PHP. Il costruttore promosso PHP 8 scrive le proprietà direttamente nella firma del costruttore anziché dichiararle separatamente; disattivalo per un costruttore classico esplicito. Genera getter e setter aggiunge metodi di accesso (isX() per i booleani, getX()/setX() altrimenti) anziché esporre le proprietà direttamente. declare(strict_types=1) aggiunge l'intestazione del tipo rigoroso di PHP, e i commenti del blocco di documentazione annotano ogni proprietà con il suo tipo dedotto. I campi array decidono se un elenco è tipizzato come un array semplice o documentato con il suo tipo di elemento, come string[], poiché PHP non ha generici per questo nell'hint di tipo.

Un campo visto come null, o mancante da alcuni elementi di un array di oggetti, viene generato come nullable, con un controllo isset() sicuro quando deve costruire un oggetto annidato o mappare un elenco, e un default di coalescenza null altrimenti. Una chiave che collide con una parola chiave PHP o inizia con una cifra viene rinominata in un nome di proprietà valido, e ogni proprietà generata mantiene la chiave JSON originale come chiave di array in fromArray() e toArray().

Tutto funziona localmente nel tuo browser: il JSON che incolla, che può includere risposte API reali o dati di configurazione, non viene mai caricato da nessuna parte. Copia la classe generata, scaricala come file .txt, o invia l'output di nuovo nell'input per perfezionarlo ulteriormente.

FAQ

Quale versione di PHP è destinata al codice generato?
PHP 8.0 o versioni successive, poiché le proprietà del costruttore promosso e il tipo misto sono funzionalità di PHP 8. Disattiva l'opzione del costruttore promosso se hai bisogno di un output compatibile con PHP 7.
Come vengono gestiti gli oggetti annidati?
Ogni forma di oggetto distinta diventa la sua propria classe, con i suoi propri metodi fromArray() e toArray(). Due campi con una forma identica riutilizzano la stessa classe generata anziché duplicarla.
Cosa succede a un campo che a volte è nullo o mancante?
Viene generata come proprietà tipizzata nullable. Gli scalari hanno il valore predefinito null con l'operatore di coalescenza null; gli oggetti annidati e gli elenchi di oggetti utilizzano un controllo isset() in modo che fromArray() non chiami mai un metodo su dati mancanti.
Posso generare più classi da un campione JSON?
Sì. Ogni oggetto annidato nel campione produce la sua propria classe nello stesso file, in ordine di dipendenza, quindi il file è pronto all'uso così com'è.
Il mio JSON viene caricato da qualche parte?
No. La generazione della classe viene eseguita interamente nel tuo browser: il tuo JSON non lascia mai il tuo dispositivo.