如何将yaml键映射到golang中的结构?

时间:2018-02-19 22:04:18

标签: go yaml

我正在寻找一个可以解析yaml文件的go脚本。我创建了一个测试yaml文件,其中包含以下内容:

    Dog:
      - name: "Dog"
      - secrets:
          username: "Shiba"
          password: "inu"
          color: "yellow"
    Cat:
      - name: "Cat"
      - secrets:
          words: "meow"
          color: "black"

结构的映射在go中会是什么样的?

我已经尝试过:

            package main

            import (
                "fmt"
                "log"

                "github.com/spf13/viper"
            )

            type Animal struct {
                Animal  []string
                Name    string
                Secrets []map[string]string
            }

            func main() {
                viper.SetConfigName("demo")
                viper.AddConfigPath(".")
                viper.SetConfigType("yaml")

                err := viper.ReadInConfig()

                if err != nil {
                    log.Fatal(err)
                }

                var animal Animal
                err = viper.Unmarshal(&animal)
                if err != nil {
                    log.Fatal(err)
                }

                fmt.Println(animal.Name)
            }

但没有回复

非常感谢任何帮助

由于

1 个答案:

答案 0 :(得分:0)

您应该遍历最上面的yml键[" Dog"," Cat"]然后将其放入结构中。如果你把它放在你的配置中它会输出动物的名字:

name: "Dog"