HCLからJSONへの変換ツール
Terraform の HCL 設定を、Terraform が公開している JSON 構文の対応規則に従って同等の JSON 表現に変換します。ネストしたブロック、ラベル、繰り返しブロック、リスト、マップ、ヒアドキュメントに対応。参照や関数呼び出しなどの非リテラル式は `${...}` の補間文字列として保持されます。すべてブラウザ内で実行されます。
入力
出力
このツールを使う他の方法
REST API
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"
}'ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。
AIエージェントに依頼する
Use the IOTools `hcl-to-json-converter` tool (HCL to JSON Converter) on this input:
YOUR_INPUT_HEREIOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。
埋め込みウィジェット
<iframe
src="https://iotools.cloud/embed/hcl-to-json-converter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="HCLから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>ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。
| API/MCP 1回あたりの費用 | 5クレジットから |
|---|---|
| クレジットが足りませんか? | 料金を見る |
次の方法でも利用可能
ガイド
Terraform の HCL(HashiCorp Configuration Language)を貼り付けると、同等の JSON 表現が得られます。Terraform 自身が .tf.json ファイルで使うのと同じ形式です。ネストしたブロック、ブロックラベル、繰り返しブロック、リスト、マップ、ヒアドキュメントはすべて、Terraform が公開している JSON 構文の対応規則に従って変換されます。入力に合わせてリアルタイムで変換され、アップロードも会員登録も不要です。
使い方
- Terraform(
.tf)のソースを入力欄に貼り付けるか、ファイルをアップロードします。内容はそのままエディタに読み込まれます。 - オプションセクションでインデント幅(スペース2つ、スペース4つ、またはミニファイ)を選びます。
- JSON の出力が右側にシンタックスハイライト付きで即座に表示されます。
- コピーするか、
.tf.jsonファイルとしてダウンロードします。
ブロックのタイプ名は JSON オブジェクトのキーになります。ブロックのラベル(resource "aws_instance" "web" には2つあります:タイプと名前)はそれぞれ JSON オブジェクトの階層を1段深くします。ラベルのない繰り返しブロック(同じリソース内の network_interface { ... } ブロック2つなど)は、ブロック本体を並べた JSON 配列になります。リスト([...])、インラインマップ({...})、ヒアドキュメント(<<EOF ... EOF、<<-EOF ... EOF)は、それぞれ直接対応する JSON 形式に変換されます。
var.instance_type や data.aws_ami.ubuntu.id のような参照や関数呼び出しはどう扱われますか?
リテラルな値ではないもの(変数参照、リソース属性の参照、関数呼び出し、算術式や論理式、[for s in var.list : s.id] のような for 式)は、Terraform がネイティブな文字列内の式に使うのと同じ ${...} 補間構文で JSON 文字列として包まれます。例えば "instance_type": "${var.instance_type}" のようになります。これは実際の .tf.json ファイルに手で同じ式を書いた場合と同じ形式で、姉妹ツールの JSON から HCL への変換ツール がこれを元の生の式に戻します。
ブロックと属性のマップを区別しますか?
確実には区別しません。プロバイダーのスキーマがなければ、どのツールでも区別できません。ラベルのないネストされたブロック(lifecycle { create_before_destroy = true } など)もリテラルのマップ属性(tags = { Name = "web" } など)も、そのキーの下では同じ単純な JSON オブジェクトになります。Terraform 自身の JSON 構文がどちらもそのように表現するためです。Terraform は実行時にリソースタイプのスキーマを使ってのみ両者を区別します。このコンバーターにはそのスキーマがないため、どちらの場合も構造的な JSON を出力します。設定の形を確認したり比較したりするにはそれで十分です。
入力した Terraform は非公開ですか?
完全に非公開です。トークン化、解析、変換はすべてお使いのブラウザ内でローカルに実行されます。シークレットやホスト名を含む HCL のソースがサーバーに送信されることはありません。
逆方向の変換や HCL の整形が必要ですか?
Terraform の JSON を元のネイティブ構文に戻すには JSON から HCL への変換ツールを、形式を変えずにインデントや引数の順序だけ整えたい場合は Terraform Formatter をご利用ください。