Json 如何在golang中初始化以下结构的结构
我有以下数据结构。我需要在不使用嵌套初始化的情况下初始化它。稍后将刷新此数据结构以输出json文件Json 如何在golang中初始化以下结构的结构,json,go,struct,Json,Go,Struct,我有以下数据结构。我需要在不使用嵌套初始化的情况下初始化它。稍后将刷新此数据结构以输出json文件 type GeneratePlan struct{ Mode string `json:"mode"` Name string `json:"name"` Schema string `json:"schema"` Version string `json:"version"` Attack_plans []struct1 `json:"att
type GeneratePlan struct{
Mode string `json:"mode"`
Name string `json:"name"`
Schema string `json:"schema"`
Version string `json:"version"`
Attack_plans []struct1 `json:"attack-plans"`
}
type struct1 struct {
Attack_plan Attack_plan `json:"attack-plan"`
}
type Attack_plan struct{
Attack_resouces []struct2 `json:"attack-resources"`
}
type struct2 struct {
Attack_resource Attack_resource `json:"attack-resource"`
}
问题是,当我尝试将struct2类型的变量附加到攻击资源[]片时,它给出的错误如下
cannot use struct2 (type *structs.Struct2) as type structs.Struct2 in append
我们如何在不使用新的或任何ptr的情况下初始化结构?因为,如果我们使用任何标准的struct初始化技术,它将给出上述错误。
如果我更改了上面的数据结构,并使其包含指向另一个结构的指针,则它无法正确存储值。我对戈朗很陌生。感谢您的帮助。提前谢谢 可以使用以下命令初始化结构值:
resource := struct2{}
正如@nothingmuch所指出的,如果您有一个结构指针并且需要底层值,则可以使用以下方法取消对指针的引用:
deref := *resource
请确保将来发布实际失败的代码。错误消息也与您的代码示例不匹配。您的问题是,您正在将指针值附加到结构片。将切片定义更改为
[]*Struct2
,或取消引用x.Attack\u resources=append(x.Attack\u resources,*Struct2)
中的指针。请注意,go通常不鼓励使用snake_案例。