Hoppa till innehåll

HCL till JSON

Konvertera Terraform-konfiguration i HCL-format till motsvarande JSON.

Inmatning
Utmatning

HCL till JSON

Klistra in HCL — språket som Terraform, Packer och andra HashiCorp-verktyg använder — och denna konverterare returnerar motsvarande JSON. Den hanterar de dagliga strukturerna i en verklig .tf-fil: attribut på toppnivå och block med noll eller flera strängetiketter som resource "aws_instance" "web", kapslade i andra block så långt det behövs. Märkta block konverteras med samma konvention som Terraforms egen .tf.json-syntax använder, så en resurs med typ och namn hamnar under resource → type → name i resultatet, och upprepade block på samma sökväg — till exempel två ingress-block i en resurs — blir en JSON-array istället för att skriva över varandra.

Strängar, tal, booleska värden, null, listor och inline-objektliteraler (tags = { Name = "web" }) konverteras direkt. Heredoc-strängar (<<EOT ... EOT och den indenterade <<-EOT-formen) blir vanliga JSON-strängar med bevarade radbrytningar, och ${var.name}-interpolationer — tillsammans med bara referenser som var.region eller samtal som merge(a, b) — förblir som bokstavlig text snarare än utvärderad, eftersom inget webbverktyg kan lösa Terraform-variabler eller leverantörer.

Alternativ täcker indenteringsbredd (2 mellanslag, 4 mellanslag, tabulatorer eller minifierad), alfabetisk sortering av nycklar, behållande eller kastning av kommentarer och val mellan ett samslaget JSON-objekt eller en platt lista med block — var och en med sin typ, etiketter och brödtext — för enklare skriptning. Dubbla attributnycklar i ett block flaggas i den levande räknaren snarare än att tyst släppas, och både Windows- och Unix-radbrytningar accepteras.

Allt körs lokalt i din webbläsare — din konfiguration laddas aldrig upp, vilket är viktigt när den innehåller verkliga resurser, IP-adresser eller konto-ID:n. Kopiera JSON:en, ladda ned den som .txt-fil, eller skicka den direkt till ett annat verktyg för att fortsätta arbeta.

FAQ

Utvärderas Terraform-variabler och funktioner?
Nej. Interpolationer som ${var.region} och bara uttryck som var.region eller merge(a, b) behålls som bokstavlig ${...}-text i utdata, precis som Terraforms egen JSON-syntax representerar dem — detta verktyg har ingen åtkomst till dina variabelvärden, tillstånd eller leverantörer.
Hur representeras block som resource "aws_instance" "web"?
Efter etikett, kapslad i objektet: resource → aws_instance → web innehåller det blocks attribut. Det matchar konventionen som Terraform själv använder för .tf.json-filer.
Vad händer med Heredoc-strängar?
Både <<EOT och den indenterade <<-EOT-formen konverteras till en normal JSON-sträng med verkliga radbrytningar. Det indenterade formuläret får först sitt gemensamma ledande tomt utrymme borttaget, hur Terraform läser det.
Kan jag få en platt lista med block istället för ett stort objekt?
Ja — växla "Utdataformat" till "Lista med block" för att få en array med poster, var och en med sin typ, etiketter och brödtext, vilket är lättare att loopa över i ett skript.
Laddas min HCL-konfiguration upp någonstans?
Nej. Konverteringen körs helt i din webbläsare — ingenting som du klistrar in här, inklusive resursnamn eller värden, lämnar någonsin din enhet.