在 Go 中编组动态 JSON 字段标签
使用 JSON 格式为 Terraform 文件生成 JSON 时,您可能会遇到使用的挑战具有随机或变量名称的资源的动态 JSON 键。出现这种情况是因为 Terraform 的 JSON 编组字段标签需要静态标识符。
传统上,人们可能会考虑使用自定义代码来滚动自己的 JSON,但是,最好使用现有的编组功能。问题来了:如何使用 Go 的字段标签创建动态 JSON 键?
解决方案
不幸的是,在 Go 中使用字段标签生成动态 JSON 键是不可能的。然而,存在另一种解决方案:使用地图。
使用地图
Go 中的地图允许动态键,这使得它们非常适合这种情况。下面是一个示例:
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { // Your instance properties here }
在此示例中,资源结构中的 AWSInstance 字段是一个使用动态字符串键来存储各个 AWSInstance 值的映射。
示例用法
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ // Initialize your instance properties }, // ... add other instances with dynamic keys }, }
游乐场示例
您可以在 Go Playground 上探索交互式示例:https://go.dev/play/p/e9d2O-cLsjX
以上是如何在 Go 中编组动态 JSON 字段标签?的详细内容。更多信息请关注PHP中文网其他相关文章!