在 golang 中解析 yaml 文件时出现的问题

我正在寻找未结婚的简单yaml,但有些事情不对劲。已经花了足够的时间。请帮忙吗?


package main


import (

    "fmt"


    yaml "gopkg.in/yaml.v2"

)


func main() {


    raw := `

targets:

  - from: "http://localhost:8080/test1"

    timeout: "10s"

  - from: "http://localhost:8080/test2"

    timeout: "30s"

`

    type Target struct {

        from    string `yaml:"from"`

        timeout string `yaml:"timeout"`

    }

    type config struct {

        Targets []Target `yaml:"targets"`

    }


    cfg := config{}


    err := yaml.Unmarshal([]byte(raw), &cfg)

    if err != nil {

        fmt.Println(err)

    }


    fmt.Println("Config", cfg)

}


我低于空的 o/p


Config {[{ } { }]}

儿童游乐场 -> https://play.golang.org/p/LANMpq_zPP9


梦里花落0921
浏览 105回答 1
1回答

森栏

您必须导出结构中的字段。如 api 文档中所述:仅当导出结构字段(具有大写首字母)时,结构字段才会取消编组,并且使用小写的字段名称作为默认键来取消编组。(https://github.com/go-yaml/yaml/blob/496545a6307b/yaml.go#L88)将 -struct 更改为:Targettype Target struct {    From    string `yaml:"from"`    Timeout string `yaml:"timeout"`}应该工作。试试看:https://play.golang.org/p/ZD7Jrv0QBdn
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go