Incolla PowerShell a sinistra e clicca "Converti" — lo trasformiamo in JSONIncolla codice PowerShell

Cosa fa questo strumento

Se hai mai copiato una hashtable @{...} da uno script PowerShell e ti serviva l'equivalente JSON — senza aprire una shell e fare pipe in ConvertTo-Json — questo strumento serve esattamente a quello. Incolli il PowerShell, ricevi JSON pulito. Funziona per una singola hashtable, un'istanza [PSCustomObject] o un'intera catena di blocchi @{} annidati con array dentro.

L'output corrisponde a quello che ti darebbe ConvertTo-Json -Depth 100. Hashtable e [PSCustomObject] diventano entrambi oggetti JSON. Gli array (@(1,2,3)) diventano array JSON. $null diventa null, $true/$false diventano booleani JSON. I valori DateTime vengono emessi come stringhe ISO-8601, la stessa convenzione che usa PowerShell 7.

Le chiavi che contengono spazi o caratteri speciali rimangono quotate. I letterali numerici (42, 3.14) restano numeri. Le stringhe tra apici singoli e doppi vengono parse entrambe correttamente e le sequenze di escape tra apici doppi (`n, `t) vengono risolte. Se incolli più assegnazioni di primo livello, ognuna diventa una chiave nel JSON di output, con il nome della variabile.

Come si usa

Tre passaggi. Funziona uguale sia che incolli una hashtable da due chiavi sia un blocco di configurazione intero.

1

Incolla il tuo PowerShell (o prova l'esempio)

Butta il tuo snippet di script nell'editor a sinistra. Una hashtable, un [PSCustomObject], blocchi @{} annidati o un array di oggetti — va tutto bene. Carica esempio mostra un caso realistico di ordine.

Non devi ripulire niente — lascia i prefissi $variable, i cast [PSCustomObject] e i commenti esattamente come sono.

2

Premi Converti

Clicca il bottone verde Converti. Lo strumento fa il parse della hashtable, attraversa ogni struttura annidata e costruisce il JSON in un'unica passata.

3

Copia il JSON

Il pannello a destra si riempie di JSON indentato. Incollalo in un template ARM, nel body di un Invoke-RestMethod o in una fixture JSON per un test Pester.

Quando torna davvero utile

Costruire body di richieste REST API

Hai una hashtable pronta da mandare via <code>Invoke-RestMethod</code> e vuoi verificare prima la forma del JSON. Incolla, controlla, spedisci.

Convertire hashtable di config in file JSON

Un team usa file di config <code>.psd1</code>, ma un servizio nuovo vuole JSON. Incolla la hashtable e salva l'output come <code>config.json</code>.

File di parametri ARM / Bicep

I parametri dei template ARM sono JSON, ma spesso li costruisci prima come hashtable PowerShell. Converti una volta e committa il JSON.

Alimentare strumenti a valle

Gli script di CI in PowerShell spesso devono passare dati strutturati a Python, Node o a un comando di container che si aspetta JSON su stdin. È quel passaggio di consegne.

Domande frequenti

Corrisponde all'output di ConvertTo-Json?

Sì — l'obiettivo è la parità con ConvertTo-Json -Depth 100 -Compress:$false. Hashtable e oggetti [PSCustomObject] diventano entrambi oggetti JSON; gli array diventano array JSON; $null, $true, $false si mappano nel modo solito.

E [PSCustomObject] rispetto a una hashtable normale?

Entrambi si convertono nello stesso oggetto JSON. [PSCustomObject] preserva l'ordine delle proprietà, cosa che questo strumento rispetta. Le hashtable normali vengono ordinate alfabeticamente di default — come ConvertTo-Json.

Posso incollare uno script intero?

Sì, ma nell'output entrano solo le assegnazioni di primo livello $variable = @{...} e [PSCustomObject]@{...}. Definizioni di funzione, flusso di controllo e chiamate di cmdlet vengono ignorati. Ogni variabile di primo livello diventa una chiave nel JSON, con il nome della variabile.

Come vengono gestiti date e numeri?

Gli output di [DateTime] e Get-Date vengono emessi come stringhe ISO-8601. I letterali numerici (incluso [decimal]) restano numeri JSON. Le date incollate come stringhe grezze restano stringhe.

Il mio codice viene memorizzato?

Il tuo codice viene inviato al backend per la conversione e non viene persistito — non logghiamo il payload. Se la hashtable contiene segreti, rimuovili prima di incollare.

Gestisce here-string e valori stringa multilinea?

Sì. Le here-string @"..."@ e @'...'@ vengono preservate come stringhe JSON con l'encoding dei newline corretto.

Altri strumenti che potrebbero servirti

PowerShell → JSON si abbina bene al resto della cassetta degli attrezzi: