Perl till JSON-konverterare
Klistra in en Perl hash ref eller array ref. Få tillbaka ren JSON.
Vad verktyget gör
Om du någon gång har stirrat på en djupt nästlad Perl hash ref och försökt skriva motsvarande JSON för hand vet du hur jobbigt det är — => mot :, citerade nycklar, escape:ade strängar, hela paketet. Klistra in Perl här så får du tillbaka giltig JSON utan att skriva om något. Det klarar en enstaka {...}-hash ref, en kedja av my $x = {...}; my $y = [...];-deklarationer, eller något fem nivåer djupt med array refs i hash refs i ytterligare hash refs.
Det matchar det du skulle få av JSON::PP eller Cpanel::JSON::XS med canonical => 1. Hash refs blir JSON-objekt, array refs blir arrayer, undef blir null, siffror förblir siffror och strängar förblir strängar. Den klassiska otydligheten i Perl-dokumentationen mellan "1" och 1 löses på vanligt sätt — ser det numeriskt ut skickas det ut som ett JSON-tal.
Blessed references (Perls variant av objekt) packas upp till den underliggande hash ref:en, så bless { ... }, "Order" kommer ut som ett vanligt JSON-objekt med samma nycklar. Sentinelvärdena JSON::true, JSON::false och JSON::null konverteras till sina JSON-motsvarigheter. Flera deklarationer på toppnivå hamnar som nycklar i JSON-utdatan, namngivna efter variabeln.
Så använder du det
Tre steg. Fungerar likadant oavsett om du klistrar in en liten hash ref eller en hel config-dump.
Klistra in din Perl (eller testa exemplet)
Släpp din Perl rakt av i vänstra editorn. En hash ref, en array ref, flera deklarationer eller ett blessed object — allt går bra. Klicka Ladda exempel om du vill se ett realistiskt fall.
Låt referenssyntaxen vara — \%hash, \@array, {...}, [...]. Parsern förstår allt.
Tryck Konvertera
Klicka på den gröna Konvertera-knappen. Verktyget går igenom Perl-strukturen, löser referenser och bygger JSON i en enda pass.
Kopiera JSON
Högra panelen visar indenterad JSON, redo för en API-payload, en fixture-fil eller ett CPAN-modultest. Kopiera och gå vidare.
När det faktiskt kommer väl till pass
Bort från Storable eller Data::Dumper
Du har flera års gamla Perl-hashdumpar och måste skicka dem vidare till ett modernt API — JSON är lingua franca. Klistra in och få ordentlig JSON utan att skriva en encoder.
Mata en REST-endpoint från ett Perl-skript
Ditt cron-jobb bygger en hash ref från en databasfråga. Innan du skjuter den mot ett REST-API, klistra in här och kontrollera att JSON-formen stämmer med vad servern förväntar sig.
Skriva testfixtures
Ta en hash ref direkt från ett Perl-modultest, konvertera till JSON, släng in den i en .json-fixture för tester mellan olika språk.
Dela config med utvecklare som inte kör Perl
En Perl-configfil använder hash refs överallt. Konvertera till JSON så att Node-, Go- eller Python-teamet kan läsa den utan att installera Perl.
Vanliga frågor
Hanterar den blessed objects?
Ja. En blessed hash ref (t.ex. bless { id => 1 }, "Order") behandlas som den underliggande hash ref:en — klassnamnet ryker och nycklarna/värdena kommer ut som ett vanligt JSON-objekt. Det matchar hur JSON::PP beter sig med convert_blessed.
Vad händer 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 är standard-booleanerna från Cpanel::JSON::XS.
Kan jag klistra in <code>Data::Dumper</code>-utdata?
Ja — utdata från Data::Dumper (formen $VAR1 = {...};) parsas utan problem. Det inledande $VAR1 = tas som variabelnamn och blir den yttre nyckeln.
Hur hanteras siffror mot strängar?
Perl är lite slapp med skillnaden. Konverteraren följer den vanliga regeln: bara numeriska literaler (42, 3.14) blir JSON-tal, och allt inom citattecken ("42") förblir en JSON-sträng. Behöver du en sträng som ser numerisk ut, sätt citat runt den.
Sparas min kod?
Din kod går till backenden för konverteringen och sparas inte — vi loggar inte payloaden. Om hash ref:en innehåller riktiga credentials, byt ut dem innan du klistrar in.
Vad händer om jag klistrar in flera hash refs?
Varje toppnivå-my $name = {...}; blir en nyckel i JSON-utdatan, uppkallad efter variabeln. Anonyma strukturer får "_1", "_2" och så vidare. Inget försvinner i det tysta.
Andra verktyg du kan behöva
Perl till JSON går bra ihop med resten av verktygslådan: