跳到主要内容

HCL 转 JSON 转换器

API reference

按照 Terraform 官方文档中的 JSON 语法映射,将 Terraform HCL 配置转换为等效的 JSON 表示——支持嵌套块、块标签、重复块、列表、映射和 heredoc。引用、函数调用等非字面量表达式会保留为 `${...}` 插值字符串。完全在浏览器中运行。

输入

Drop a file or browse
One file · text
或

输出

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_HERE

将此粘贴给任何已连接 IOTools 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 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

粘贴 Terraform HCL(HashiCorp Configuration Language),即可获得等效的 JSON 表示——与 Terraform 自身用于 .tf.json 文件的结构完全一致。嵌套块、块标签、重复块、列表、映射和 heredoc 均按照 Terraform 官方文档中的 JSON 语法映射进行转换。输入时即时转换,无需上传,也无需注册。

使用方法

  1. 将 Terraform(.tf)源代码粘贴到输入框中,或上传文件——内容会直接载入编辑器。
  2. 在“选项”部分选择缩进大小(2 个空格、4 个空格或压缩)。
  3. JSON 输出会立即显示在右侧,并带有语法高亮。
  4. 复制结果,或将其下载为 .tf.json 文件。

块的类型名会成为 JSON 对象的键。块上的每个标签(例如 resource "aws_instance" "web" 有两个:类型和名称)都会使 JSON 对象再深一层。没有标签且重复出现的块类型(同一资源中的两个 network_interface { ... } 块)会变成一个包含各块主体的 JSON 数组。列表([...])、内联映射({...})和 heredoc 字符串(<<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 转换器 会将它还原为原始表达式。

它能区分块和映射属性吗?

无法确定——没有你的 provider 模式(schema)的任何工具都无法区分。没有标签的嵌套块(如 lifecycle { create_before_destroy = true })和字面量映射属性(如 tags = { Name = "web" })在该键下都会转换为普通的 JSON 对象,因为 Terraform 自身的 JSON 语法就是这样表示两者的。真正的 Terraform 仅在应用时借助资源类型的模式来区分它们。本转换器没有该模式,因此无论如何都会输出结构性的 JSON——这正是检查或比较配置结构时所需要的。

我的 Terraform 配置是私密的吗?

完全私密。词法分析、解析和转换都在你的浏览器中本地运行——你的 HCL 源码(包括其中的任何密钥或主机名)从不会发送到服务器。

需要反向转换,或只想格式化 HCL?

如需将 Terraform JSON 转回原生语法,请使用 JSON 转 HCL 转换器;如果只想整理缩进和参数顺序而不改变格式,请使用 Terraform 格式化工具。

terraformhcljsontf.jsoninfrastructure as codeiacdevopsconfighcl2json

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。