Indsæt PowerShell til venstre og klik på "Konverter" — så laver vi det om til JSONIndsæt PowerShell-kode

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.

1

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.

2

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.

3

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: