猿问

将 YAML 解组为结构体

我正在尝试将 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 是一个空结构 &{}。


守着星空守着你
浏览 387回答 2
2回答

森栏

您的结构字段未导出。导出它们,它会起作用。type Config struct {    FooBar string `yaml:"foo_bar"`}

慕田峪9158850

资本问题:foo_bar --> foo_bar
随时随地看视频慕课网APP

相关分类

Go
我要回答