gpt4 book ai didi

json - 在 Go 中编码动态 JSON 字段标签

转载 作者:IT王子 更新时间:2023-10-29 01:55:19 26 4
gpt4 key购买 nike

我正在尝试为 Terraform file 生成 JSON .因为我(认为我)想使用编码而不是滚动我自己的 JSON,所以我使用 Terraforms JSON 格式而不是“ native ”TF 格式。

{
"resource": [
{
"aws_instance": {
"web1": {
"some": "data"
}
}]
}

resourceaws_instance 是静态标识符,而 web1 在这种情况下是随机名称。同时拥有 web2web3 也不是不可想象的。

type Resource struct {
AwsResource AwsResource `json:"aws_instance,omitempty"`
}

type AwsResource struct {
AwsWebInstance AwsWebInstance `json:"web1,omitempty"`
}

然而问题在于; 如何使用 Go 的字段标签生成随机/可变 JSON 键?

我觉得答案是“你不知道”。那我还有什么其他选择?

最佳答案

在大多数情况下,编译时名称未知,可以使用映射:

type Resource struct {
AWSInstance map[string]AWSInstance `json:"aws_instance"`
}

type AWSInstance struct {
AMI string `json:"ami"`
Count int `json:"count"`
SourceDestCheck bool `json:"source_dest_check"`
// ... and so on
}

下面是一个示例,展示了如何构造用于编码的值:

r := Resource{
AWSInstance: map[string]AWSInstance{
"web1": AWSInstance{
AMI: "qdx",
Count: 2,
},
},
}

playground example

关于json - 在 Go 中编码动态 JSON 字段标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31540705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com