Go Yaml 解释示例

这个 Go Yaml 解释示例 https://gist.github.com/suntong001/74c85d15b19ef4b14b0e可以解组一个简单的 YAML,如下所示:


foo: 1

bar:

  - one

  - two

现在我想解释一个完全相同数据结构的数组,正确的方法是什么?


到目前为止,以下是我的代码,它没有按预期工作。请帮忙。


package main


import (

    "fmt"

    "log"


    "gopkg.in/yaml.v2"

)


type Config struct {

    Foo string

    Bar []string

}


type Configs struct {

    Cfgs []Config

}


var data = `

- foo: 1

  bar:

    - one

    - two

    - three

- foo: 2

  bar:

    - one1

    - two2

    - three3

`


func main() {


  var config Configs


    /*

       filename := os.Args[1]

       source, err := ioutil.ReadFile(filename)

       if err != nil {

           panic(err)

       }

    */


    source := []byte(data)


    err := yaml.Unmarshal(source, &config)

    if err != nil {

        log.Fatalf("error: %v", err)

    }


    //fmt.Printf("Value: %#v\n", config.Bar[0])


    fmt.Printf("--- config:\n%v\n\n", config)

}

更新:


Jfly 指出,为了使它工作,只需将 my 替换var config Configs为var config []Config,它就可以解决问题。现在我想如果将我的数据定义更改为以下内容,我上面的代码将起作用。


foobars:

 - foo: 1

   bar:

    - one

    - two

    - three


 - foo: 2

   bar:

    - one1

    - two2

    - three3

不,它没有。请帮忙。


牛魔王的故事
浏览 178回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go