Convertitore da PHP a JSON
Incolla classi, array o oggetti PHP. Riprendi JSON pulito.
Cosa fa questo strumento
Se hai una classe PHP piena di proprietà tipizzate e ti serve un payload JSON per un test, una chiamata API o una fixture, scrivere l'array a mano è una rottura. Incolli il PHP qui e ti torna indietro del JSON valido con ogni proprietà al suo posto. Funziona con una singola classe, un file pieno di entity Doctrine, un model Laravel Eloquent o un array associativo puro — stesso risultato, JSON valido in uscita.
Il convertitore rispecchia ciò che fa json_encode() a runtime. Le proprietà tipizzate (PHP 7.4+) e readonly (PHP 8.1+) vengono fuori come normali chiavi JSON. Interi, float, booleani e stringhe si mappano uno a uno. null diventa null JSON. Le istanze di oggetti annidati vengono espanse in oggetti JSON annidati. Gli array associativi diventano oggetti JSON; gli array con indici numerici diventano array JSON — la stessa distinzione che fa json_encode.
Anche le funzionalità moderne di PHP sono gestite. I backed enum si serializzano sul loro valore di backing (string o int). DateTimeImmutable esce come stringa ISO-8601. Se incolli più classi in una volta sola — tipo qualcosa che hai tirato giù da Packagist — ogni classe di primo livello diventa la sua chiave nel JSON, con i tipi annidati espansi. Metodi, costanti e proprietà statiche vengono saltati; solo i dati di istanza finiscono nell'output.
Come si usa
Tre passaggi. Funziona uguale che tu incolli dieci righe o un file Model intero.
Incolla il tuo PHP (o prova l'esempio)
Butta il tuo PHP nell'editor di sinistra così com'è. Una definizione di classe, una nuova istanza, un array associativo o più classi — va tutto bene. Clicca Carica esempio se vuoi vedere prima un caso realistico.
Tieni la sintassi PHP completa — namespace, use, modificatori di visibilità, attributi. Il parser ignora il boilerplate che non gli serve.
Clicca Converti
Clicca il bottone verde Converti. Lo strumento legge il PHP, conserva ogni proprietà e classe e costruisce il JSON in una passata. Vedrai un piccolo indicatore di caricamento mentre gira.
Copia il JSON
Il pannello di destra si riempie di JSON indentato. Copialo dritto nel body di una richiesta HTTP, in una fixture PHPUnit, in un file di config o nella doc della tua API.
Quando torna davvero utile
Costruire payload di richieste API
Hai un DTO CreateOrderRequest e ti serve il body JSON corrispondente per Postman, curl o un test di integrazione. Incolli la classe, ottieni il payload.
Seeding di Laravel o Symfony
Trasforma un po' di righe <code>new Product(...)</code> da una factory in un file JSON di seed per database:seed o per i loader di fixture — basta array fatti a mano.
Tenere onesti gli esempi OpenAPI
Genera esempi JSON per la tua spec OpenAPI direttamente dai tuoi DTO reali, così gli esempi dello schema restano in sync con il codice.
Debuggare l'output di json_encode
Quando un oggetto non si serializza come ti aspetti, incollalo qui per vederne la forma pulita — poi confrontala con quello che <code>json_encode()</code> sta davvero producendo.
Domande frequenti
Gestisce le proprietà tipizzate e readonly di PHP 8?
Sì. Proprietà tipizzate, tipi nullable (?string), modificatori readonly e proprietà promosse nel costruttore vengono tutti raccolti. Il type hint non cambia il valore JSON — dice solo al parser cosa aspettarsi.
E gli enum?
I backed enum si serializzano sul loro valore di backing (string o int). Gli enum puri senza backing type escono con il nome del case. Stesso comportamento del json_encode standard su un BackedEnum.
Array associativo vs indicizzato — quale diventa un oggetto?
Stessa regola di json_encode: un array sequenziale a partire da 0 diventa array JSON; qualunque array con chiavi string (o chiavi intere non sequenziali) diventa oggetto JSON.
Come vengono serializzati DateTime e DateTimeImmutable?
Come stringhe ISO-8601, lo stesso formato che ottieni da $dt->format(DateTime::ATOM). Se la data ha un fuso orario, l'offset viene preservato in uscita.
Posso incollare un intero file di models?
Sì. Ogni classe di primo livello diventa la sua voce JSON, gli oggetti annidati si espandono in modo naturale e le proprietà settate nel costruttore sono incluse. Anche le proprietà private e protected vengono emesse — il parser guarda la forma, non la visibilità.
Il mio codice viene salvato?
Il tuo PHP viene mandato al backend per la conversione e non viene persistito — non logghiamo il payload. Per codice sensibile, dagli una scorsa prima di incollare.
Altri strumenti che potrebbero servirti
PHP a JSON è un pezzo del puzzle. Questi ci vanno a nozze: