gpt4 book ai didi

dictionary - 是否可以在包含 map 名称的同时编码一个 go 结构?

转载 作者:行者123 更新时间:2023-12-01 22:39:22 30 4
gpt4 key购买 nike

假设我有一个这样设置的 go 结构:

type TestStruct struct {
ID string
ConfigTest map[string]Object

}
对象内部有 yaml/json 标签,用于编码(然后保存到文件中),如下所示:
type Object struct {
ID string `yaml:"ID"`
Value float64 `yaml:"Value"`
}
所以,当我编码 TestStruct.ConfigTest , 并使用 ioutil.WriteFile() 将其保存到文件中我得到这样的输出:
obj1:
ID: "Hello"
Value: 1.2
obj2:
ID: "World"
Value: 3.4
...(etc)
但我真正想要的是编码,并像这样保存文件:
Objects:  
obj1:
ID: "Hello"
Value: 1.2
obj2:
ID: "World"
Value: 3.4
...(etc)
这可能吗?

最佳答案

您有两个基本选择:
重用 TestStruct :
更改TestStruct在字段上有适当的标签:一个跳过编码(marshal) ID,另一个给 ConfigTest 提供所需的名称.

type TestStruct struct {
ID string `yaml:"-"`
ConfigTest map[string]Object `yaml:"Objects"`
}
使用包装结构:
如果您不能或不想修改 TestStruct (即:因为它已经在其他地方编码(marshal)),您可以使用包装结构:
type WrapperStruct struct {
ConfigTest map[string]Object `yaml:"Objects"`
}
并编码您的新包装结构而不是 MyStruct .

关于dictionary - 是否可以在包含 map 名称的同时编码一个 go 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573342/

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