我在Go中使用了这些嵌套 struct ,并为它们的属性添加了定制标记,
type DummyParams struct {
Param1 string `yaml:"param1"`
Param2 string `yaml:"param2"`
}
type Dummy struct {
Name string `yaml:"name"`
Type string `yaml:"type"`
Params DummyParams `yaml:"params"`
}
我创建了一些虚拟对象的实例,并将它们添加到切片中,
dummies := make([]Dummy, 0)
dummy1 := Dummy {
Name: "a"
Type: "type a"
Params: DummyParams {
Param1: "foo"
Param2: "bar"
}
}
dummies = append(dummies, dummy1)
dummy2 := Dummy {
Name: "b"
Type: "type b"
Params: DummyParams {
Param1: "foo"
Param2: "bar"
}
}
dummies = append(dummies, dummy2)
最后,我编组数据并将其写入文件
yamlData, err := yaml.Marshal(&dummies)
// handle error ...
writeErr := os.WriteFile("foo.yaml", yamlData, 0644)
// handle write error ...
但是我得到的YAML没有小写标记的名称,而是大写的Struct名称. 有人知道为什么会发生这种情况吗?知道如何修复吗?