为了更好地理解terraform,我希望能够将HCL转换为等效的JSON。我获得了要构建的HCL解析器(https://github.com/hashicorp/hcl)并可以运行测试,但是我看不到任何命令可以接收HCL文件并输出JSON。
有一个HCL的python实现,它包含一个将HCL转换为JSON的实用程序,但是它具有一些相当奇怪/意外的行为,我想确认该行为来自HCL语言,并且不特定于python实现。例如
> cat foo.tf
service {
key = "aaa"
}
service {
key = 0x10
foo = "bar"
}
> hcltool foo.tf
{
"service": [
{
"foo": "bar",
"key": "aaa"
},
{
"key": 16
}
]
}
最佳答案
有一个开源项目json2hcl
,您可以寻求帮助,但是terraform hcl不是他们设计的标准。在这里说明:
https://github.com/kvz/json2hcl/issues/4#issuecomment-275513256
您可以安装该工具的相关存储库:
https://github.com/kvz/json2hcl
这是一个将fixtures/infra.tf.json转换为HCL的示例:
$ json2hcl < fixtures/infra.tf.json > fixtures/infra.tf
另外,通过-reverse标志也支持相反的对话:$ json2hcl -reverse < fixtures/infra.tf