基本的なHCLブロックをJSONに変換する

シンプルなHCLブロックと属性がどのようにJSONオブジェクトに変換されるかを学びます。文字列、数値、ブーリアン値と基本的なブロックからオブジェクトへのマッピングを解説します。

Basic Syntax

詳細な説明

HCLブロックからJSONオブジェクトへ

最も基本的な変換は、HCLブロックをJSONオブジェクトに変換することです。ブロック内の各属性はJSONオブジェクトのキーバリューペアになり、ブロックタイプとラベルがネスト構造を決定します。

HCLの例

resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  count         = 3
  monitoring    = true
}

生成されるJSON

{
  "resource": {
    "aws_instance": {
      "web": {
        "ami": "ami-0c55b159cbfafe1f0",
        "instance_type": "t2.micro",
        "count": 3,
        "monitoring": true
      }
    }
  }
}

主要なマッピングルール

HCL要素 JSONの対応
ブロックタイプ トップレベルキー
ブロックラベル ネストされたオブジェクトキー
文字列属性 JSON文字列
数値属性 JSON数値
ブーリアン属性 JSONブーリアン
null JSON null

ブロックラベルのネスト

ラベル付きのHCLブロックはネストされたJSONオブジェクトを作成します。resource "type" "name"ブロックは3レベルのネストを生成します:ブロックタイプキー、リソースタイプキー、リソース名キー。これはTerraformのJSON設定構文でラベルがオブジェクトキーになるのと同じです。

型の保持

HCLの型システムはJSONにきれいにマッピングされます:文字列は文字列のまま、整数と浮動小数点はJSON数値になり、ブーリアンは直接マッピングされます。nullキーワードはJSON nullに変換されます。これによりプリミティブ型の変換はロスレスになります。

ユースケース

HCL設定ブロックとそのJSON等価物の基本的な関係を理解する必要がある場合。TerraformのJSON設定構文(.tf.jsonファイル)で作業を始める際や、プログラマティックにTerraform設定を生成するツールを構築する際に役立ちます。

試してみる — HCL ↔ JSON Converter

フルツールを開く