Links PowerShell einfügen und auf "Konvertieren" klicken — wir machen JSON darausPowerShell-Code einfügen

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.

1

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.

2

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.

3

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: