Pular para o conteúdo principal

Conversor de HCL para JSON

API reference

Converta configurações HCL do Terraform para a representação JSON equivalente, seguindo o mapeamento de sintaxe JSON documentado pela Terraform — blocos aninhados, rótulos, blocos repetidos, listas, mapas e heredocs. Expressões não literais (referências, chamadas de função) são preservadas como strings de interpolação `${...}`. Executa inteiramente no seu navegador.

Entrada

Drop a file or browse
One file · text
Ou

Saída

Saída JSON
 
Isso foi útil?

Mais formas de usar esta ferramenta

API REST

curl -X POST https://api.iotools.cloud/v1/tool/hcl-to-json-converter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hclSource": "resource \"aws_instance\" \"web\" {\n  ami           …",
    "indent": "2"
  }'

Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.

Peça a um agente de IA

Use the IOTools `hcl-to-json-converter` tool (HCL to JSON Converter) on this input:

YOUR_INPUT_HERE

Cole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.

Widget para incorporar

<iframe
  src="https://iotools.cloud/embed/hcl-to-json-converter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Conversor de HCL para JSON — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Coloque isso na sua própria página — grátis, sem chave, só um link de volta.

Custo por chamada de API/MCPA partir de 5 créditos
Precisa de mais créditos?Ver preços

Também disponível via

Guias

Cole o HCL (HashiCorp Configuration Language) do Terraform e obtenha a representação JSON equivalente — o mesmo formato que o próprio Terraform usa para arquivos .tf.json. Blocos aninhados, rótulos de bloco, blocos repetidos, listas, mapas e heredocs são convertidos seguindo o mapeamento de sintaxe JSON documentado pela Terraform. A conversão acontece enquanto você digita, sem upload e sem cadastro.

Como usar

  1. Cole o seu código Terraform (.tf) na caixa de entrada, ou envie um arquivo — o conteúdo vai direto para o editor.
  2. Escolha o tamanho do recuo (2 espaços, 4 espaços ou minificado) na seção Opções.
  3. A saída JSON aparece instantaneamente à direita, com realce de sintaxe.
  4. Copie o resultado ou baixe-o como um arquivo .tf.json.

O nome do tipo de um bloco vira uma chave de objeto JSON. Cada rótulo do bloco (resource "aws_instance" "web" tem dois: o tipo e o nome) aninha um nível de objeto JSON a mais. Um tipo de bloco que se repete sem rótulos (dois blocos network_interface { ... } no mesmo recurso) vira um array JSON de corpos de bloco. Listas ([...]), mapas inline ({...}) e strings heredoc (<<EOF ... EOF, <<-EOF ... EOF) são convertidos para os equivalentes JSON diretos.

O que acontece com referências e chamadas de função, como var.instance_type ou data.aws_ami.ubuntu.id?

Qualquer coisa que não seja um valor literal — uma referência a variável, uma referência a atributo de recurso, uma chamada de função, uma expressão aritmética ou booleana, uma expressão for como [for s in var.list : s.id] — é envolvida como uma string JSON usando a mesma sintaxe de interpolação ${...} que o Terraform usa para expressões dentro de uma string nativa, por exemplo "instance_type": "${var.instance_type}". Isso corresponde a como você escreveria a mesma expressão à mão em um arquivo .tf.json real, e é exatamente o que o Conversor de JSON para HCL, irmão desta ferramenta, desfaz para voltar a uma expressão crua.

A ferramenta diferencia um bloco de um atributo de mapa?

Não com certeza — e nenhuma ferramenta sem o schema do seu provedor conseguiria. Um bloco aninhado sem rótulos (como lifecycle { create_before_destroy = true }) e um atributo de mapa literal (como tags = { Name = "web" }) são convertidos para um objeto JSON simples nessa chave, porque é exatamente assim que a própria sintaxe JSON do Terraform representa os dois. O Terraform só os diferencia na aplicação, usando o schema do tipo de recurso. Este conversor não tem esse schema, então emite a estrutura JSON de qualquer forma — que é o que você quer para inspecionar ou comparar o formato de uma configuração.

A minha configuração Terraform é privada?

Totalmente. A tokenização, a análise e a conversão rodam localmente no seu navegador — o seu código HCL, incluindo quaisquer segredos ou nomes de host nele, nunca é enviado a um servidor.

Precisa do caminho inverso ou só quer formatar HCL?

Use o Conversor de JSON para HCL para ir do JSON do Terraform de volta à sintaxe nativa, ou o Formatador de Terraform se você só quer limpar a indentação e a ordem dos argumentos sem mudar o formato.

terraformhcljsontf.jsoninfrastructure as codeiacdevopsconfighcl2json

Ama as ferramentas? Livre-se dos anúncios.

Um único pagamento remove todos os anúncios da sua conta, para sempre. Sem assinatura, sem rastreamento.