我正在尝试将YAML数据解析为字符串:
package main import ( "fmt" "log" "gopkg.in/yaml.v2" ) type Config struct { foo_bar string } func FailOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, err) panic(fmt.Sprintf("%s: %s", msg, err)) } } func ParseYAMLConfig(data []byte) *Config { config := Config{} err := yaml.Unmarshal(data, &config) if err != nil { FailOnError(err, "Failed to unmarshal the config") } return &config } var configYAMLData = ` --- foo_bar: "https://foo.bar" ` func main() { config := ParseYAMLConfig([]byte(configYAMLData)) fmt.Printf("%v", config) }
由于某种原因,config是一个空结构&{}。
您的结构的字段未导出。导出它们,它将起作用。
type Config struct { FooBar string `yaml:"foo_bar"` }