登录
首页 >  Golang >  Go问答

golang中解析yaml文件的问题

来源:stackoverflow

时间:2024-04-29 09:06:36 417浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《golang中解析yaml文件的问题》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我正在寻找解组简单的 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


正确答案


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

结构体字段只有在导出时才被解组(首字母大写),并且使用小写的字段名称作为默认键进行解组。

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

target-struct 更改为:

type Target struct {
    From    string `yaml:"from"`
    Timeout string `yaml:"timeout"`
}

应该可以。

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

今天关于《golang中解析yaml文件的问题》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>