Plak PowerShell links en klik op "Converteren" — wij maken er JSON vanPlak PowerShell-code

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.

1

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.

2

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.

3

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: