教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang中解析yaml配置文件

golang中解析yaml配置文件

发布时间:2021-05-19   编辑:jiaochengji.com
教程集为您提供golang中解析yaml配置文件等资源,欢迎您收藏本站,我们将为您提供最新的golang中解析yaml配置文件资源

解析简单的Yaml文件

首先看一个简单的例子,现在我们有一个config.yaml的配置文件,内容为:

username: raily
password: 123a

那么我们可以像下边这样解析:

type Config struct{
	Username string `yaml:"username"`
	Password string `yaml:"password"`
}
var DatabaseConfig *Config
//解析函数
func Load(path string) error{
	conf := new(Config)
	yamlFile, err := ioutil.ReadFile(path)
	if err != nil {
		log.Println("yamlFile.Get err:", err)
		return err
	}
	err = yaml.Unmarshal(yamlFile, conf)
	if err != nil {
		log.Fatal("Unmarshal:", err)
		return err
	}
	DatabaseConfig = conf
	return err
}

解析嵌套的Yaml文件

上面的例子只是解析了最简单的Yaml文件,没有嵌套的Yaml文件,但是实际应用中,嵌套的情况经常出现。
假设yaml配置文件config.yaml的内容为:

redis:
	address: 127.0.0.0
	password: 123a
mysql:
	username: momo
	password: 123a

解析过程中,我们只需改变Config的结构体即可,解析函数参照上边的例子。解析的结构体可写为以下两种格式。

type Config struct{
	Redis struct{
		Address string `yaml:"address"`
		Password string `yaml:"password"`
	}
	Mysql struct{
		Username string `yaml:"username"`
		Password string `yaml:"password"`
	}
}

或者:

type Config struct{
	Redis Redis `yaml:"redis"` //或者:`yaml:"redis, inline"`
	Mysql Mysql `yaml:"mysql"` //或者:`yaml:"mysql, inline"`
}
type Redis struct{
	Address string `yaml:"address"`
	Password string `yaml:"password"`
}
type Mysql struct{
	Username string `yaml:"username"`
	Password string `yaml:"password"`
}

然后用上例中的Load函数进行解析即可。

将yaml配置内容解析到map对象中

如果懒得去写struct进行Unmarshal,也可以直接声明一个map对象:
resultMap := make(map[string]interface{}),代替struct 结构体来进行解析。

到此这篇关于“golang中解析yaml配置文件”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang中解析yaml配置文件
Golang加载yaml类型配置文件问题
golang使用yaml格式解析构建配置文件
Golang——使用yaml配置文件
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
golang几种常用配置文件使用方法总结(yaml、toml、json、xml、ini)
beego读取配置yaml配置文件
让我们一起认识YAML:YAML简介
golang整洁之道(一)
Go语言从入门到精通 -【web项目实战篇】- 读取配置文件

[关闭]
~ ~