为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
梦里花落0921 2022-09-05 10:44:36
我正在寻找未结婚的简单yaml,但有些事情不对劲。已经花了足够的时间。请帮忙吗?package mainimport (    "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/pConfig {[{ } { }]}儿童游乐场 -> https://play.golang.org/p/LANMpq_zPP9
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

您必须导出结构中的字段。如 api 文档中所述:


仅当导出结构字段(具有大写首字母)时,结构字段才会取消编组,并且使用小写的字段名称作为默认键来取消编组。


(https://github.com/go-yaml/yaml/blob/496545a6307b/yaml.go#L88)


将 -struct 更改为:Target


type Target struct {

    From    string `yaml:"from"`

    Timeout string `yaml:"timeout"`

}

应该工作。


试试看:https://play.golang.org/p/ZD7Jrv0QBdn


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信