PowerShell till JSON Converter
Klistra in en PowerShell-hashtable eller PSCustomObject. Få tillbaka JSON.
Vad verktyget gör
Om du någonsin kopierat en @{...}-hashtable ur ett PowerShell-skript och behövt JSON-motsvarigheten — utan att öppna ett shell och pipa genom ConvertTo-Json — då är det här verktyget för dig. Klistra in PowerShell, få tillbaka ren JSON. Funkar för en ensam hashtable, en [PSCustomObject]-instans eller en hel kedja av nästlade @{}-block med arrays inuti.
Outputen matchar det ConvertTo-Json -Depth 100 skulle ge dig. Hashtables och [PSCustomObject] blir båda JSON-objekt. Arrays (@(1,2,3)) blir JSON-arrays. $null blir null, $true/$false blir JSON-booleaner. DateTime-värden skickas ut som ISO-8601-strängar, samma konvention som PowerShell 7 använder.
Nycklar med mellanslag eller specialtecken förblir citerade. Numeriska literaler (42, 3.14) förblir tal. Strängar i enkla och dubbla citattecken parsas båda korrekt, och escape-sekvenser i dubbla citattecken (`n, `t) löses upp. Om du klistrar in flera tilldelningar på toppnivå blir varje en nyckel i utdata-JSON, namngiven efter variabeln.
Så använder du det
Tre steg. Funkar likadant oavsett om du klistrar in en hashtable med två nycklar eller ett helt konfigblock.
Klistra in din PowerShell (eller testa exemplet)
Släng in ditt skriptutdrag i vänstra editorn. En hashtable, en [PSCustomObject], nästlade @{}-block eller en array av objekt — allt går bra. Ladda exempel visar ett realistiskt orderexempel.
Du behöver inte städa bort något — låt $variable-prefixen, [PSCustomObject]-casten och kommentarerna stå exakt som de är.
Tryck Konvertera
Klicka på den gröna Konvertera-knappen. Verktyget parsar hashtable-strukturen, går igenom varje nästlad nivå och bygger JSON på en gång.
Kopiera JSON
Den högra panelen fylls med indenterad JSON. Klistra in den i en ARM-mall, en Invoke-RestMethod-body eller en JSON-fixture för ett Pester-test.
När det verkligen kommer till användning
Bygga request bodies för REST-API:er
Du har en hashtable klar att skicka via <code>Invoke-RestMethod</code> och vill verifiera JSON-formen först. Klistra in, inspektera, skicka.
Konvertera konfig-hashtables till JSON-filer
Ett team använder <code>.psd1</code>-konfigfiler, men en ny tjänst förväntar sig JSON. Klistra in hashtable och spara outputen som <code>config.json</code>.
ARM- / Bicep-parameterfiler
ARM-mallparametrar är JSON, men man bygger dem ofta som PowerShell-hashtables först. Konvertera en gång och committa JSON:en.
Mata downstream-verktyg
CI-skript i PowerShell behöver ofta lämna över strukturerad data till Python, Node eller ett container-kommando som förväntar sig JSON på stdin. Det är precis den överlämningen.
Vanliga frågor
Matchar det ConvertTo-Json-output?
Ja — målet är paritet med ConvertTo-Json -Depth 100 -Compress:$false. Hashtables och [PSCustomObject]-objekt blir båda JSON-objekt; arrays blir JSON-arrays; $null, $true, $false mappas på vanligt sätt.
Vad är skillnaden på [PSCustomObject] och en vanlig hashtable?
Båda konverteras till samma JSON-objekt. [PSCustomObject] behåller egenskapsordningen, vilket verktyget respekterar. Vanliga hashtables sorteras alfabetiskt som standard — precis som ConvertTo-Json.
Kan jag klistra in ett helt skript?
Ja, men bara tilldelningarna på toppnivå — $variable = @{...} och [PSCustomObject]@{...} — kommer med i outputen. Funktionsdefinitioner, kontrollflöde och cmdlet-anrop ignoreras. Varje toppnivåvariabel blir en nyckel i JSON, namngiven efter variabeln.
Hur hanteras datum och tal?
Output från [DateTime] och Get-Date kommer ut som ISO-8601-strängar. Numeriska literaler (inklusive [decimal]) förblir JSON-tal. Datum som klistras in som råa strängar förblir strängar.
Sparas min kod?
Din kod skickas till backend för konvertering och sparas inte — vi loggar inte payloaden. Om hashtable innehåller hemligheter, plocka bort dem innan du klistrar in.
Hanterar det here-strings och flerradiga strängvärden?
Ja. Here-strings @"..."@ och @'...'@ bevaras som JSON-strängar med korrekt newline-kodning.
Andra verktyg du kan behöva
PowerShell till JSON passar bra ihop med resten av verktygslådan: