Lim inn Perl til venstre og klikk "Konverter" — vi gjør det om til JSONLim inn Perl-kode

Hva verktøyet gjør

Hvis du noen gang har stirret på en dypt nestet Perl hash ref og prøvd å skrive tilsvarende JSON for hånd, vet du hvor vondt det er — => vs :, nøkler i anførselstegn, escape-strenger, hele pakka. Lim inn Perl her, så får du gyldig JSON tilbake uten å skrive noe på nytt. Det håndterer en enkelt {...}-hash ref, en serie my $x = {...}; my $y = [...];-deklarasjoner, eller noe fem nivåer dypt med array refs inne i hash refs inne i flere hash refs.

Det matcher det du ville fått fra JSON::PP eller Cpanel::JSON::XS med canonical => 1. Hash refs blir JSON-objekter, array refs blir arrays, undef blir null, tall forblir tall, strenger forblir strenger. Den gamle tvetydigheten i Perl-dokumentasjonen mellom "1" og 1 løses som vanlig — ser det numerisk ut, kommer det ut som et JSON-tall.

Blessed references (Perls variant av objekter) pakkes ut til den underliggende hash ref:en, så bless { ... }, "Order" kommer ut som et vanlig JSON-objekt med samme nøkler. Sentinelverdiene JSON::true, JSON::false og JSON::null konverteres til sine JSON-motstykker. Flere deklarasjoner på toppnivå havner som nøkler i JSON-utdataen, navngitt etter variabelen.

Slik bruker du det

Tre steg. Funker likt enten du limer inn en liten hash ref eller en hel config-dump.

1

Lim inn Perl-koden din (eller prøv eksempelet)

Slipp Perl-koden rett inn i venstre editor. En hash ref, en array ref, flere deklarasjoner eller et blessed object — alt går bra. Klikk Last inn eksempel hvis du vil se et realistisk case.

La referansesyntaksen være i fred — \%hash, \@array, {...}, [...]. Parseren forstår alt.

2

Trykk Konverter

Klikk på den grønne Konverter-knappen. Verktøyet går gjennom Perl-strukturen, løser referanser og bygger JSON-en i én runde.

3

Kopier JSON-en

Høyre panel viser innrykket JSON, klar for et API-payload, en fixture-fil eller en CPAN-modultest. Kopier og gå videre.

Når det faktisk redder dagen

Bort fra Storable eller Data::Dumper

Du har årevis med gamle Perl hash-dumps og må sende dem videre til et moderne API — JSON er lingua franca. Lim inn og få ordentlig JSON uten å skrive en encoder.

Mate et REST-endepunkt fra et Perl-skript

Cron-jobben din bygger en hash ref fra et databasekall. Før du fyrer den av mot et REST-API, lim den inn her for å sjekke at JSON-formen matcher det serveren forventer.

Skrive testfixtures

Ta en hash ref rett fra en Perl-modultest, konverter til JSON, legg den i en .json-fixture for tester på tvers av språk.

Dele config med utviklere som ikke kjører Perl

En Perl-configfil bruker hash refs overalt. Konverter til JSON så Node-, Go- eller Python-teamet kan lese den uten å installere Perl.

Vanlige spørsmål

Håndterer den blessed objects?

Ja. En blessed hash ref (f.eks. bless { id => 1 }, "Order") behandles som den underliggende hash ref:en — klassenavnet forsvinner og nøklene/verdiene kommer ut som et vanlig JSON-objekt. Det matcher hvordan JSON::PP oppfører seg med convert_blessed.

Hva med <code>undef</code>, <code>JSON::true</code>, <code>JSON::false</code>?

undef blir JSON null. JSON::true / \1 blir true, JSON::false / \0 blir false. Det er standard boolean-konvensjonene fra Cpanel::JSON::XS.

Kan jeg lime inn <code>Data::Dumper</code>-output?

Ja — output fra Data::Dumper (formen $VAR1 = {...};) parses uten problemer. Det ledende $VAR1 = tolkes som variabelnavn og blir den ytterste nøkkelen.

Hvordan håndteres tall vs strenger?

Perl er litt slapp med forskjellen. Konvertereren følger den vanlige regelen: nakne numeriske literaler (42, 3.14) blir JSON-tall, og alt i anførselstegn ("42") forblir en JSON-streng. Trenger du en streng som ser numerisk ut, sett den i anførselstegn.

Lagres koden min?

Koden din går til backenden for konvertering og lagres ikke — vi logger ikke payloaden. Hvis hash ref:en inneholder ekte credentials, bytt dem ut før du limer inn.

Hva skjer hvis jeg limer inn flere hash refs?

Hver toppnivå-my $name = {...}; blir en nøkkel i JSON-outputten, navngitt etter variabelen. Anonyme strukturer får "_1", "_2" osv. Ingenting droppes i stillhet.

Andre verktøy du kan trenge

Perl til JSON passer godt sammen med resten av verktøykassa: