Cola PowerShell à esquerda e clica em "Converter" — a gente transforma em JSONCola código PowerShell

O que esta ferramenta faz

Se alguma vez copiaste uma hashtable @{...} de um script do PowerShell e precisavas do JSON equivalente — sem ter que abrir um shell e passar por ConvertTo-Json — é exatamente para isso que serve esta ferramenta. Cola o PowerShell, recebe JSON limpo. Funciona para uma hashtable única, uma instância de [PSCustomObject] ou uma cadeia inteira de blocos @{} aninhados com arrays dentro.

A saída bate com o que ConvertTo-Json -Depth 100 te daria. Hashtables e [PSCustomObject] viram objetos JSON. Arrays (@(1,2,3)) viram arrays JSON. $null vira null, $true/$false viram booleanos JSON. Valores DateTime são emitidos como strings ISO-8601, a mesma convenção que o PowerShell 7 usa.

Chaves com espaços ou caracteres especiais ficam entre aspas. Literais numéricos (42, 3.14) continuam números. Strings entre aspas simples e duplas são parseadas corretamente, e as sequências de escape dentro de aspas duplas (`n, `t) são resolvidas. Se colares várias atribuições no nível superior, cada uma vira uma chave no JSON de saída, com o nome da variável.

Como usar

Três passos. Funciona igual tanto para uma hashtable de duas chaves quanto para um bloco de configuração inteiro.

1

Cola o teu PowerShell (ou testa o exemplo)

Joga o trecho do script no editor da esquerda. Uma hashtable, um [PSCustomObject], blocos @{} aninhados ou um array de objetos — tudo serve. Carregar exemplo mostra um caso realista de pedido.

Não precisas limpar nada — deixa os prefixos $variable, os casts de [PSCustomObject] e os comentários exatamente como estão.

2

Aperta Converter

Clica no botão verde Converter. A ferramenta parseia a hashtable, percorre cada estrutura aninhada e monta o JSON numa passada só.

3

Copia o JSON

O painel da direita enche com JSON indentado. Cola num template ARM, num corpo de Invoke-RestMethod ou numa fixture JSON para um teste Pester.

Quando realmente dá jeito

Montar corpos de requisição para APIs REST

Tens uma hashtable pronta pra enviar via <code>Invoke-RestMethod</code> e queres verificar o formato do JSON antes. Cola, inspeciona, manda.

Converter hashtables de config em arquivos JSON

Um time usa arquivos de config <code>.psd1</code>, mas um serviço novo espera JSON. Cola a hashtable e salva a saída como <code>config.json</code>.

Arquivos de parâmetros ARM / Bicep

Parâmetros de template ARM são JSON, mas frequentemente montas eles primeiro como hashtables do PowerShell. Converte uma vez e comita o JSON.

Alimentar ferramentas downstream

Scripts de CI em PowerShell muitas vezes precisam passar dados estruturados para Python, Node ou um comando de container que espera JSON no stdin. É essa a ponte.

Perguntas comuns

Combina com a saída do ConvertTo-Json?

Sim — o objetivo é paridade com ConvertTo-Json -Depth 100 -Compress:$false. Hashtables e objetos [PSCustomObject] viram objetos JSON; arrays viram arrays JSON; $null, $true, $false mapeiam do jeito usual.

E [PSCustomObject] versus uma hashtable comum?

Os dois convertem para o mesmo objeto JSON. [PSCustomObject] preserva a ordem das propriedades, e esta ferramenta respeita isso. Hashtables comuns vêm em ordem alfabética por padrão — igual ao ConvertTo-Json.

Posso colar um script inteiro?

Pode, mas só as atribuições de nível superior $variable = @{...} e [PSCustomObject]@{...} entram na saída. Definições de função, controle de fluxo e chamadas de cmdlet são ignorados. Cada variável de nível superior vira uma chave no JSON, com o nome da variável.

Como são tratadas datas e números?

Saídas de [DateTime] e Get-Date saem como strings ISO-8601. Literais numéricos (inclusive [decimal]) continuam sendo números JSON. Datas coladas como strings cruas ficam como strings.

Meu código fica armazenado?

Teu código é enviado ao backend para a conversão e não é persistido — não logamos o payload. Se a hashtable tiver segredos, apaga antes de colar.

Ela lida com here-strings e valores de string multi-linha?

Sim. Here-strings @"..."@ e @'...'@ são preservados como strings JSON com codificação de quebra de linha correta.

Outras ferramentas que podes precisar

PowerShell para JSON combina bem com o resto do kit: