Plak Perl links en klik "Converteren" — wij maken er JSON vanPlak Perl-code

Wat deze tool doet

Als je ooit naar een diep geneste Perl hash ref hebt zitten staren terwijl je probeerde de equivalente JSON met de hand te schrijven, ken je de pijn — => vs :, keys met quotes, geëscapete strings, noem maar op. Plak het Perl hier en je krijgt geldige JSON terug zonder iets te hoeven herschrijven. Het werkt met een losse {...} hash ref, een rij my $x = {...}; my $y = [...]; declaraties, of iets met vijf niveaus aan array refs binnen hash refs binnen nog meer hash refs.

Het komt overeen met wat je van JSON::PP of Cpanel::JSON::XS met canonical => 1 zou krijgen. Hash refs worden JSON-objecten, array refs worden arrays, undef wordt null, getallen blijven getallen, strings blijven strings. De klassieke ambiguïteit uit de Perl-documentatie tussen "1" en 1 wordt opgelost zoals gebruikelijk — ziet het er numeriek uit, dan komt het als JSON-getal naar buiten.

Blessed references (de Perl-versie van objects) worden uitgepakt tot hun onderliggende hash ref, dus een bless { ... }, "Order" komt eruit als een gewoon JSON-object met dezelfde keys. De sentinel-waarden JSON::true, JSON::false en JSON::null worden omgezet naar hun JSON-tegenhangers. Meerdere top-level declaraties landen als keys in de JSON-output, vernoemd naar de variabele.

Zo gebruik je het

Drie stappen. Werkt hetzelfde of je nou een kleine hash ref plakt of een hele config-dump.

1

Plak je Perl (of probeer het voorbeeld)

Gooi je Perl gewoon in de linker editor. Een hash ref, een array ref, meerdere declaraties of een blessed object — het mag allemaal. Klik op Voorbeeld laden als je een realistisch geval wilt zien.

Laat de reference-syntax staan — \%hash, \@array, {...}, [...]. De parser snapt ze allemaal.

2

Klik op Converteren

Klik op de groene Converteren-knop. De tool loopt de Perl-structuur af, lost references op en bouwt de JSON in één doorgang.

3

Kopieer de JSON

Het rechterpaneel toont ingesprongen JSON, klaar voor een API-payload, een fixture-bestand of een CPAN-moduletest. Kopiëren en door.

Wanneer het echt handig is

Migreren van Storable of Data::Dumper

Je hebt jarenlange legacy Perl hash-dumps die je aan een moderne API moet geven — JSON is de lingua franca. Plakken en je krijgt fatsoenlijke JSON, zonder zelf een encoder te schrijven.

Een REST-endpoint voeden vanuit een Perl-script

Je cronjob bouwt een hash ref op uit een database-query. Voordat je hem op een REST-API loslaat, plak je hem hier om te zien of de JSON-vorm matcht met wat de server verwacht.

Test-fixtures schrijven

Pak een hash ref direct uit een Perl-moduletest, converteer hem naar JSON en zet hem in een .json-fixture voor cross-language tests.

Config delen met niet-Perl devs

Een Perl-configbestand gebruikt overal hash refs. Converteer naar JSON zodat het Node-, Go- of Python-team het kan lezen zonder Perl te hoeven installeren.

Veelgestelde vragen

Werkt het met blessed objects?

Ja. Een blessed hash ref (bijv. bless { id => 1 }, "Order") wordt behandeld als zijn onderliggende hash ref — de classnaam gaat eraf en de keys/values komen er als gewoon JSON-object uit. Dit komt overeen met hoe JSON::PP zich gedraagt met convert_blessed.

En <code>undef</code>, <code>JSON::true</code>, <code>JSON::false</code>?

undef wordt JSON null. JSON::true / \1 wordt true, JSON::false / \0 wordt false. Dit zijn de standaard boolean-conventies van Cpanel::JSON::XS.

Mag ik <code>Data::Dumper</code>-output plakken?

Ja — de output van Data::Dumper (de $VAR1 = {...};-vorm) wordt prima geparsed. De leidende $VAR1 = wordt gezien als variabelenaam en wordt de outer key.

Hoe worden getallen vs strings afgehandeld?

Perl is losjes met dat verschil. De converter volgt de gangbare regel: kale numerieke literals (42, 3.14) worden JSON-getallen, en alles met quotes ("42") blijft een JSON-string. Wil je een string die er numeriek uitziet, zet hem tussen quotes.

Wordt mijn code opgeslagen?

Je code gaat naar de backend voor de conversie en wordt niet opgeslagen — we loggen de payload niet. Als de hash ref echte credentials bevat, vervang die dan voor je plakt.

Wat als ik meerdere hash refs plak?

Elke top-level my $name = {...}; wordt een key in de JSON-output, vernoemd naar de variabele. Anonieme structuren krijgen "_1", "_2", enz. Er wordt niets stilletjes weggegooid.

Andere tools die je kunt gebruiken

Perl naar JSON past goed bij de rest van de toolbox: