PowerShell til JSON Converter
Indsæt en PowerShell-hashtable eller PSCustomObject. Få JSON tilbage.
Hvad værktøjet gør
Hvis du nogensinde har kopieret en @{...}-hashtable ud af et PowerShell-script og haft brug for JSON-ækvivalenten — uden at åbne en shell og pipe gennem ConvertTo-Json — så er det præcis det, dette værktøj er til. Indsæt PowerShell, få ren JSON tilbage. Virker for en enkelt hashtable, en [PSCustomObject]-instans eller en hel kæde af nestede @{}-blokke med arrays indeni.
Outputtet matcher det, ConvertTo-Json -Depth 100 ville give dig. Hashtables og [PSCustomObject] bliver begge til JSON-objekter. Arrays (@(1,2,3)) bliver til JSON-arrays. $null bliver til null, $true/$false bliver til JSON-booleans. DateTime-værdier udsendes som ISO-8601-strenge, samme konvention som PowerShell 7 bruger.
Nøgler med mellemrum eller specialtegn forbliver citerede. Numeriske literaler (42, 3.14) forbliver tal. Strenge i både enkelt- og dobbeltanførselstegn parses korrekt, og escape-sekvenser i dobbeltanførselstegn (`n, `t) opløses. Indsætter du flere tildelinger på topniveau, bliver hver af dem en nøgle i output-JSON'en, navngivet efter variablen.
Sådan bruger du det
Tre trin. Virker ens, uanset om du indsætter en hashtable med to nøgler eller en hel konfigblok.
Indsæt din PowerShell (eller prøv eksemplet)
Smid dit script-snippet ind i den venstre editor. En hashtable, et [PSCustomObject], nestede @{}-blokke eller en array af objekter — det hele går an. Indlæs eksempel viser et realistisk ordreeksempel.
Du behøver ikke rydde noget op — lad $variable-præfikserne, [PSCustomObject]-cast'ene og kommentarerne stå nøjagtigt som de er.
Tryk på Konverter
Klik på den grønne Konverter-knap. Værktøjet parser hashtable'en, går igennem hver nestet struktur og bygger JSON'en i ét hug.
Kopier JSON
Den højre panel fyldes med indrykket JSON. Indsæt den i en ARM-skabelon, en Invoke-RestMethod-body eller en JSON-fixture til en Pester-test.
Når det virkelig er praktisk
Bygge request bodies til REST-API'er
Du har en hashtable klar til at sende via <code>Invoke-RestMethod</code> og vil tjekke JSON-formen først. Indsæt, kig, send.
Konvertere konfig-hashtables til JSON-filer
Et team bruger <code>.psd1</code>-konfigfiler, men en ny service forventer JSON. Indsæt hashtable'en og gem outputtet som <code>config.json</code>.
ARM- / Bicep-parameterfiler
ARM-skabelonparametre er JSON, men man bygger dem ofte op som PowerShell-hashtables først. Konverter én gang og commit JSON'en.
Fodre downstream-værktøjer
CI-scripts i PowerShell skal ofte aflevere struktureret data til Python, Node eller en container-kommando, der forventer JSON på stdin. Det er præcis den overlevering.
Almindelige spørgsmål
Matcher det ConvertTo-Json-output?
Ja — målet er paritet med ConvertTo-Json -Depth 100 -Compress:$false. Hashtables og [PSCustomObject]-objekter bliver begge JSON-objekter; arrays bliver JSON-arrays; $null, $true, $false mapper på den sædvanlige måde.
Hvad med [PSCustomObject] versus en almindelig hashtable?
Begge konverterer til samme JSON-objekt. [PSCustomObject] bevarer rækkefølgen af properties, hvilket værktøjet respekterer. Almindelige hashtables sorteres alfabetisk som standard — præcis som ConvertTo-Json.
Kan jeg indsætte et helt script?
Ja, men kun topniveau-tildelingerne $variable = @{...} og [PSCustomObject]@{...} kommer med i outputtet. Funktionsdefinitioner, kontrolflow og cmdlet-kald ignoreres. Hver topniveau-variabel bliver en nøgle i JSON'en, navngivet efter variablen.
Hvordan håndteres datoer og tal?
Output fra [DateTime] og Get-Date udsendes som ISO-8601-strenge. Numeriske literaler (inklusive [decimal]) forbliver JSON-tal. Datoer indsat som rå strenge bevares som strenge.
Gemmes min kode?
Din kode sendes til backend til konvertering og gemmes ikke — vi logger ikke payloaden. Hvis hashtable'en indeholder hemmeligheder, så fjern dem før du indsætter.
Håndterer den here-strings og flerlinjede strengværdier?
Ja. Here-strings @"..."@ og @'...'@ bevares som JSON-strenge med korrekt newline-encoding.
Andre værktøjer du måske får brug for
PowerShell til JSON passer godt sammen med resten af værktøjskassen: