Golang YAML 阅读与地图地图

这是我的 YAML 文件。


description: fruits are delicious

fruits:

  apple:

    - red

    - sweet

  lemon:

    - yellow

    - sour

我可以用这个gopkg.in/yaml.v1包读取更扁平的版本,但是当它看起来像地图时,我一直试图弄清楚如何读取这个 YAML 文件。


package main


import (

  "fmt"

  "gopkg.in/yaml.v1"

  "io/ioutil"

  "path/filepath"

)


type Config struct {

  Description string

  Fruits []Fruit

}


type Fruit struct {

  Name string

  Properties []string

}


func main() {

  filename, _ := filepath.Abs("./file.yml")

  yamlFile, err := ioutil.ReadFile(filename)


  if err != nil {

    panic(err)

  }


  var config Config


  err = yaml.Unmarshal(yamlFile, &config)

  if err != nil {

    panic(err)

  }


  fmt.Printf("Value: %#v\n", config.Description)

  fmt.Printf("Value: %#v\n", config.Fruits)

}

它无法取出嵌套的 Fruits。回来好像是空的。 Value: []main.Fruit(nil).


慕无忌1623718
浏览 205回答 1
1回答

函数式编程

使用字符串切片图来表示水果属性:type Config struct {  Description string  Fruits map[string][]string}打印未编组的配置fmt.Printf("%#v\n", config)产生以下输出(不包括我为可读性添加的空格):main.Config{Description:"fruits are delicious",      Fruits:map[string][]string{          "lemon":[]string{"yellow", "sour"},           "apple":[]string{"red", "sweet"}}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go