Convertitore da Perl a JSON
Incolla un hash ref o array ref Perl. Ti restituiamo JSON pulito.
Cosa fa questo strumento
Se hai mai fissato un hash ref Perl profondamente annidato cercando di scrivere a mano il JSON equivalente, sai che cos'è il dolore — => vs :, chiavi tra virgolette, stringhe escape, tutto il pacchetto. Incolli il Perl qui e ti ritrovi un JSON valido senza riscrivere nulla. Gestisce un singolo hash ref {...}, una serie di dichiarazioni my $x = {...}; my $y = [...];, o qualcosa di cinque livelli con array refs dentro hash refs dentro altri hash refs.
Combacia con quello che otterresti da JSON::PP o Cpanel::JSON::XS con canonical => 1. Gli hash refs diventano oggetti JSON, gli array refs diventano array, undef diventa null, i numeri restano numeri, le stringhe restano stringhe. L'ambiguità classica della documentazione Perl tra "1" e 1 si risolve come sempre — se sembra numerico, viene emesso come numero JSON.
I riferimenti blessed (la versione Perl degli oggetti) vengono scompattati fino all'hash ref sottostante, quindi un bless { ... }, "Order" esce come un normale oggetto JSON con le stesse chiavi. I valori sentinella JSON::true, JSON::false e JSON::null vengono convertiti nei rispettivi equivalenti JSON. Più dichiarazioni al livello più alto finiscono come chiavi nell'output JSON, con il nome della variabile.
Come si usa
Tre passaggi. Funziona uguale sia che incolli un hash ref piccolo o un dump di configurazione intero.
Incolla il tuo Perl (o prova l'esempio)
Butta il tuo Perl nell'editor di sinistra così com'è. Un hash ref, un array ref, più dichiarazioni o un oggetto blessed — va tutto bene. Clicca Carica esempio se vuoi vedere un caso realistico.
Lascia stare la sintassi dei riferimenti — \%hash, \@array, {...}, [...]. Il parser le capisce tutte.
Premi Converti
Clicca il bottone verde Converti. Il tool attraversa la struttura Perl, risolve i riferimenti e costruisce il JSON in un'unica passata.
Copia il JSON
Il pannello di destra mostra JSON indentato, pronto per un payload API, un file di fixture o un test di modulo CPAN. Copia e vai avanti.
Quando serve davvero
Uscire da Storable o Data::Dumper
Hai anni di dump legacy di hash Perl e devi passarli a un'API moderna — JSON è la lingua franca. Incolli e ottieni JSON decente senza scrivere un encoder.
Chiamare un endpoint REST da uno script Perl
Il tuo cron costruisce un hash ref da una query al database. Prima di spararlo su un'API REST, incollalo qui per verificare che la forma del JSON sia quella che il server si aspetta.
Scrivere fixture di test
Prendi un hash ref direttamente da un test di un modulo Perl, convertilo in JSON, buttalo in un file .json di fixture per test cross-language.
Condividere config con dev non-Perl
Un file di config Perl usa hash refs ovunque. Convertilo in JSON così il team Node, Go o Python lo può leggere senza installare Perl.
Domande frequenti
Gestisce gli oggetti blessed?
Sì. Un hash ref blessed (es. bless { id => 1 }, "Order") viene trattato come l'hash ref sottostante — il nome della classe viene scartato e chiavi/valori escono come normale oggetto JSON. È lo stesso comportamento di JSON::PP con convert_blessed.
E <code>undef</code>, <code>JSON::true</code>, <code>JSON::false</code>?
undef diventa null in JSON. JSON::true / \1 diventa true, JSON::false / \0 diventa false. Sono le convenzioni booleane standard di Cpanel::JSON::XS.
Posso incollare output di <code>Data::Dumper</code>?
Sì — l'output di Data::Dumper (nella forma $VAR1 = {...};) si fa parsare senza problemi. Il $VAR1 = iniziale viene trattato come nome di variabile e diventa la chiave esterna.
Come gestisce numeri e stringhe?
Perl è piuttosto disinvolto sulla differenza. Il convertitore segue la regola consueta: letterali numerici non quotati (42, 3.14) diventano numeri JSON, qualsiasi cosa tra virgolette ("42") resta una stringa JSON. Se ti serve una stringa che sembra un numero, mettila tra virgolette.
Il mio codice viene salvato?
Il tuo codice va al backend per la conversione e non viene persistito — non logghiamo il payload. Se l'hash ref contiene credenziali reali, sostituiscile prima di incollare.
E se incollo più hash refs?
Ogni my $name = {...}; al livello più alto diventa una chiave nell'output JSON, col nome della variabile. Le strutture anonime ricevono "_1", "_2", ecc. Niente viene scartato in silenzio.
Altri strumenti che potrebbero servirti
Perl to JSON si sposa bene con il resto della cassetta degli attrezzi: