PowerShell naar JSON Converter
Plak een PowerShell-hashtable of PSCustomObject. Krijg JSON terug.
Wat deze tool doet
Als je ooit een @{...}-hashtable uit een PowerShell-script hebt gekopieerd en het JSON-equivalent nodig had — zonder een shell te openen en door ConvertTo-Json te pipen — dan is deze tool daarvoor bedoeld. Plak de PowerShell, krijg schone JSON terug. Werkt voor één hashtable, een [PSCustomObject]-instantie of een hele keten van geneste @{}-blokken met arrays erin.
De output matcht met wat ConvertTo-Json -Depth 100 je zou geven. Hashtables en [PSCustomObject] worden allebei JSON-objecten. Arrays (@(1,2,3)) worden JSON-arrays. $null wordt null, $true/$false worden JSON-booleans. DateTime-waarden komen eruit als ISO-8601-strings, dezelfde conventie die PowerShell 7 gebruikt.
Keys met spaties of speciale tekens blijven gequote. Numerieke literals (42, 3.14) blijven getallen. Strings met enkele en dubbele aanhalingstekens worden allebei correct geparsed en de escape-sequences in dubbele quotes (`n, `t) worden opgelost. Als je meerdere top-level-toewijzingen plakt, wordt elk een key in de output-JSON, benoemd naar de variabele.
Hoe gebruik je 'm
Drie stappen. Werkt hetzelfde of je nou een hashtable met twee keys plakt of een compleet configuratieblok.
Plak je PowerShell (of probeer het voorbeeld)
Gooi je script-snippet in de linker editor. Een hashtable, een [PSCustomObject], geneste @{}-blokken of een array van objecten — allemaal prima. Voorbeeld laden toont een realistisch order-voorbeeld.
Je hoeft niks op te schonen — laat de $variable-prefixes, de [PSCustomObject]-casts en de comments precies zoals ze zijn.
Druk op Converteren
Klik op de groene Converteren-knop. De tool parset de hashtable, loopt door elke geneste structuur en bouwt het JSON in één pass.
Kopieer de JSON
Het rechter paneel vult zich met ingesprongen JSON. Plak het in een ARM-template, een Invoke-RestMethod-body of een JSON-fixture voor een Pester-test.
Wanneer dit echt handig is
REST API request bodies bouwen
Je hebt een hashtable klaar om via <code>Invoke-RestMethod</code> te versturen en wilt eerst de JSON-vorm verifiëren. Plakken, bekijken, en weg ermee.
Config-hashtables naar JSON-bestanden converteren
Een team gebruikt <code>.psd1</code>-configbestanden, maar een nieuwe service verwacht JSON. Plak de hashtable en sla de output op als <code>config.json</code>.
ARM- / Bicep-parameterbestanden
ARM-template-parameters zijn JSON, maar je bouwt ze vaak eerst op als PowerShell-hashtables. Eén keer converteren en het JSON committen.
Downstream tools voeden
CI-scripts in PowerShell moeten vaak gestructureerde data doorgeven aan Python, Node of een container-command dat JSON op stdin verwacht. Precies die overdracht.
Veelgestelde vragen
Komt het overeen met de ConvertTo-Json-output?
Ja — het doel is pariteit met ConvertTo-Json -Depth 100 -Compress:$false. Hashtables en [PSCustomObject]-objecten worden beide JSON-objecten; arrays worden JSON-arrays; $null, $true, $false mappen op de gebruikelijke manier.
En [PSCustomObject] versus een gewone hashtable?
Beide converteren naar hetzelfde JSON-object. [PSCustomObject] bewaart de volgorde van properties, en deze tool respecteert dat. Gewone hashtables worden standaard alfabetisch geordend — net als ConvertTo-Json.
Kan ik een heel script plakken?
Ja, maar alleen de top-level $variable = @{...}- en [PSCustomObject]@{...}-toewijzingen komen in de output. Functiedefinities, control flow en cmdlet-calls worden genegeerd. Elke top-level-variabele wordt een key in het JSON, benoemd naar de variabele.
Hoe worden datums en getallen behandeld?
Outputs van [DateTime] en Get-Date komen eruit als ISO-8601-strings. Numerieke literals (inclusief [decimal]) blijven JSON-getallen. Datums die als ruwe strings geplakt zijn, blijven strings.
Wordt mijn code opgeslagen?
Je code gaat voor de conversie naar de backend en wordt niet bewaard — we loggen de payload niet. Als de hashtable secrets bevat, haal ze er voor het plakken uit.
Werkt het met here-strings en meerregelige string-waardes?
Ja. @"..."@- en @'...'@-here-strings blijven behouden als JSON-strings met de juiste newline-encoding.
Andere tools die je misschien nodig hebt
PowerShell naar JSON past goed bij de rest van de toolbox: