Conversor de PowerShell para JSON
Cola uma hashtable do PowerShell ou um PSCustomObject. Recebe JSON.
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.
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.
Aperta Converter
Clica no botão verde Converter. A ferramenta parseia a hashtable, percorre cada estrutura aninhada e monta o JSON numa passada só.
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: