Füge Perl links ein und klicke auf "Konvertieren" — wir machen JSON drausPerl-Code einfügen

Was das Tool macht

Wenn du schon mal vor einem tief verschachtelten Perl Hash Ref gesessen und das äquivalente JSON von Hand geschrieben hast, kennst du den Schmerz — => vs :, quoted keys, escapete Strings, das ganze Programm. Füge das Perl hier ein und bekomme gültiges JSON zurück, ohne irgendetwas umzuschreiben. Einzelne {...} Hash Refs, eine Kette aus my $x = {...}; my $y = [...]; Deklarationen, oder etwas mit fünf Ebenen Array Refs in Hash Refs in weiteren Hash Refs — alles geht.

Es entspricht dem, was du von JSON::PP oder Cpanel::JSON::XS mit canonical => 1 bekommen würdest. Hash Refs werden zu JSON Objekten, Array Refs zu Arrays, undef wird zu null, Zahlen bleiben Zahlen, Strings bleiben Strings. Die bekannte Unschärfe in der Perl-Dokumentation zwischen "1" und 1 wird wie üblich aufgelöst — sieht es numerisch aus, kommt es als JSON-Zahl raus.

Blessed References (die Perl-Variante von Objekten) werden auf ihren zugrundeliegenden Hash Ref ausgepackt, sodass bless { ... }, "Order" als normales JSON-Objekt mit denselben Keys rauskommt. Die Sentinel-Werte JSON::true, JSON::false und JSON::null werden in ihre JSON-Gegenstücke umgewandelt. Mehrere Top-Level-Deklarationen landen als Keys im JSON-Output, benannt nach der Variable.

So benutzt du es

Drei Schritte. Läuft gleich, egal ob du einen kleinen Hash Ref oder einen kompletten Config-Dump einfügst.

1

Perl einfügen (oder das Beispiel probieren)

Kipp dein Perl so wie es ist in den linken Editor. Ein Hash Ref, ein Array Ref, mehrere Deklarationen oder ein blessed Objekt — alles okay. Klick Beispiel laden, wenn du ein realistisches Beispiel sehen willst.

Lass die Reference-Syntax in Ruhe — \%hash, \@array, {...}, [...]. Der Parser versteht alles davon.

2

Konvertieren drücken

Klick auf den grünen Konvertieren-Button. Das Tool läuft durch die Perl-Struktur, löst Referenzen auf und baut das JSON in einem Durchgang.

3

JSON kopieren

Das rechte Panel zeigt eingerücktes JSON, bereit für einen API-Payload, eine Fixture-Datei oder einen CPAN-Modul-Test. Kopieren und weiter.

Wann das wirklich hilft

Weg von Storable oder Data::Dumper

Du hast jahrelange Legacy-Dumps von Perl-Hashes und musst die an eine moderne API übergeben — JSON ist die Lingua franca. Einfügen und sauberes JSON kriegen, ohne einen Encoder zu schreiben.

REST-Endpoint aus einem Perl-Skript bedienen

Dein Cronjob baut einen Hash Ref aus einer DB-Query. Bevor du den auf ein REST-API loslässt, füg ihn hier ein und prüfe, ob die JSON-Form zu dem passt, was der Server erwartet.

Test-Fixtures schreiben

Nimm einen Hash Ref direkt aus einem Perl-Modul-Test, konvertiere ihn zu JSON und leg ihn als .json-Fixture für sprachübergreifende Tests ab.

Config mit Nicht-Perl-Leuten teilen

Eine Perl-Config-Datei benutzt überall Hash Refs. Wandle sie in JSON um, damit das Node-, Go- oder Python-Team sie lesen kann, ohne Perl zu installieren.

Häufige Fragen

Kommt es mit blessed Objekten klar?

Ja. Ein blessed Hash Ref (z. B. bless { id => 1 }, "Order") wird als sein zugrundeliegender Hash Ref behandelt — der Klassenname fliegt raus und die Keys/Values kommen als normales JSON-Objekt durch. Das entspricht dem Verhalten von JSON::PP mit convert_blessed.

Was ist mit <code>undef</code>, <code>JSON::true</code>, <code>JSON::false</code>?

undef wird zu JSON null. JSON::true / \1 wird zu true, JSON::false / \0 wird zu false. Das sind die Standard-Boolean-Konventionen von Cpanel::JSON::XS.

Kann ich <code>Data::Dumper</code>-Output einfügen?

Ja — Data::Dumper-Output (die $VAR1 = {...};-Form) wird sauber geparst. Das führende $VAR1 = wird als Variablenname gewertet und zum äußeren Key.

Wie werden Zahlen vs. Strings behandelt?

Perl ist mit dem Unterschied locker. Der Konverter folgt der üblichen Regel: nackte numerische Literale (42, 3.14) werden JSON-Zahlen, alles mit Quotes ("42") bleibt ein JSON-String. Wenn du einen String brauchst, der wie eine Zahl aussieht, setz ihn in Quotes.

Wird mein Code gespeichert?

Dein Code geht zum Backend für die Konvertierung und wird nicht persistiert — wir loggen den Payload nicht. Falls der Hash Ref echte Credentials enthält, tausch sie vor dem Einfügen aus.

Was passiert, wenn ich mehrere Hash Refs einfüge?

Jedes my $name = {...}; auf Top-Level wird zu einem Key im Output-JSON, benannt nach der Variable. Anonyme Strukturen bekommen "_1", "_2" usw. Nichts wird still fallen gelassen.

Weitere Tools, die du brauchen könntest

Perl zu JSON passt gut zum Rest des Werkzeugkastens: