PowerShell zu JSON Converter
Füge eine PowerShell-Hashtable oder ein PSCustomObject ein. Bekomme JSON zurück.
Was dieses Tool macht
Falls du jemals eine @{...}-Hashtable aus einem PowerShell-Skript kopiert hast und das JSON-Äquivalent brauchtest — ohne eine Shell zu öffnen und durch ConvertTo-Json zu pipen — genau dafür ist dieses Tool da. Einfach PowerShell einfügen, sauberes JSON zurückbekommen. Funktioniert für eine einzelne Hashtable, eine [PSCustomObject]-Instanz oder eine ganze Kette verschachtelter @{}-Blöcke mit Arrays drin.
Der Output entspricht dem, was ConvertTo-Json -Depth 100 dir geben würde. Hashtables und [PSCustomObject] werden beide zu JSON-Objekten. Arrays (@(1,2,3)) werden zu JSON-Arrays. $null wird zu null, $true/$false werden zu JSON-Booleans. DateTime-Werte kommen als ISO-8601-Strings raus, dieselbe Konvention, die PowerShell 7 benutzt.
Keys mit Leerzeichen oder Sonderzeichen bleiben gequotet. Numerische Literale (42, 3.14) bleiben Zahlen. Strings in einfachen und doppelten Anführungszeichen werden beide korrekt geparst, und Escape-Sequenzen in doppelten Quotes (`n, `t) werden aufgelöst. Wenn du mehrere Top-Level-Zuweisungen einfügst, wird jede zu einem Key im Output-JSON, benannt nach der Variablen.
So benutzt du es
Drei Schritte. Funktioniert gleich, egal ob du eine Hashtable mit zwei Keys oder einen kompletten Konfigurationsblock einfügst.
PowerShell einfügen (oder Beispiel ausprobieren)
Wirf dein Skript-Snippet in den linken Editor. Eine Hashtable, ein [PSCustomObject], verschachtelte @{}-Blöcke oder ein Array von Objekten — alles okay. Beispiel laden zeigt ein realistisches Bestellbeispiel.
Du musst nichts aufräumen — lass die $variable-Präfixe, die [PSCustomObject]-Casts und die Kommentare genau so, wie sie sind.
Konvertieren drücken
Klick auf den grünen Konvertieren-Button. Das Tool parst die Hashtable, läuft durch jede verschachtelte Struktur und baut das JSON in einem Durchgang.
JSON kopieren
Das rechte Panel füllt sich mit eingerücktem JSON. Fügs in ein ARM-Template, einen Invoke-RestMethod-Body oder eine JSON-Fixture für einen Pester-Test ein.
Wann das wirklich praktisch wird
REST-API-Request-Bodies bauen
Du hast eine Hashtable parat, um sie über <code>Invoke-RestMethod</code> zu verschicken, und willst die JSON-Form vorher checken. Einfügen, inspizieren, raus damit.
Config-Hashtables in JSON-Dateien konvertieren
Ein Team nutzt <code>.psd1</code>-Config-Files, aber ein neuer Service erwartet JSON. Hashtable einfügen und den Output als <code>config.json</code> speichern.
ARM- / Bicep-Parameterfiles
ARM-Template-Parameter sind JSON, aber man baut sie oft erst als PowerShell-Hashtables auf. Einmal konvertieren und das JSON committen.
Downstream-Tools füttern
PowerShell-CI-Skripte müssen oft strukturierte Daten an Python, Node oder einen Container-Command weitergeben, der JSON auf stdin erwartet. Genau diese Übergabe.
Häufige Fragen
Entspricht das dem ConvertTo-Json-Output?
Ja — das Ziel ist Parität mit ConvertTo-Json -Depth 100 -Compress:$false. Hashtables und [PSCustomObject]-Objekte werden beide zu JSON-Objekten; Arrays werden zu JSON-Arrays; $null, $true, $false werden wie üblich gemappt.
Was ist mit [PSCustomObject] vs. einer normalen Hashtable?
Beide werden zum selben JSON-Objekt. [PSCustomObject] bewahrt die Reihenfolge der Properties, das respektiert dieses Tool. Normale Hashtables werden per Default alphabetisch sortiert — genau wie ConvertTo-Json.
Kann ich ein ganzes Skript einfügen?
Ja, aber nur die Top-Level-Zuweisungen $variable = @{...} und [PSCustomObject]@{...} landen im Output. Funktionsdefinitionen, Kontrollfluss und Cmdlet-Aufrufe werden ignoriert. Jede Top-Level-Variable wird zu einem Key im JSON, benannt nach der Variablen.
Wie werden Daten und Zahlen behandelt?
[DateTime]- und Get-Date-Outputs kommen als ISO-8601-Strings raus. Numerische Literale (inklusive [decimal]) bleiben JSON-Zahlen. Datumsangaben, die als rohe Strings eingefügt werden, bleiben Strings.
Wird mein Code gespeichert?
Dein Code wird zur Konvertierung ans Backend geschickt und nicht persistiert — wir loggen das Payload nicht. Wenn die Hashtable Secrets enthält, entferne sie vor dem Einfügen.
Funktioniert das mit Here-Strings und mehrzeiligen String-Werten?
Ja. @"..."@- und @'...'@-Here-Strings werden als JSON-Strings mit korrekter Newline-Kodierung erhalten.
Andere Tools, die du vielleicht brauchst
PowerShell zu JSON passt gut zum Rest der Toolbox: