Incolla PHP a sinistra e clicca "Converti" — lo trasformiamo in JSONIncolla codice PHP

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.

1

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.

2

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.

3

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: