Golang解析yaml文件
Golang解析yaml⽂件
⼀.具体思路
将配置yaml⽂件内容解析为我们定义好的struct,这种⽐较简单,如果想获取对应的值,直接获取即可。
⼆.实现步骤
⾸先根据配置⽂件的内容定义⼀个结构体Config,结构体类型和yaml中的属性配置了映射,这样后⾯解析的时候可以将值设置到对应的属性上通过ioutil的ReadFile⽅法读取配置⽂件的内容
定义⼀个结构体变量
调⽤yaml的Unmarshal⽅法来解析⽂件的数据到结构体对象config中,注意这⾥必须传递结构体对下的地址&config。
三.举例说明卖衣服
这⾥,我们定义⼀个yaml配置⽂件:
cat config.yaml
高考祝福词app:
name: demoApp
memcache:
enable : false
list : [redis, rabbitmq]
mysql:
user : root
password : mypassword
host : 192.168.1.1
port : 3306
dbname : mydb1
package main
import (
"fmt"
"io/ioutil"
"log"
yaml "gopkg.in/yaml.v2"
)
type Config struct {
App struct {
Name string `yaml:"name"`
}
如何网上订火车票MemCache struct {
Enable bool `yaml:"enable"`
List []string `yaml:"list"`
}
Mysql struct {
User string `yaml:"user"`
PassWord string `yaml:"password"`
Host string `yaml:"host"`
十大服装品牌
Port int32 `yaml:"port"`
DbName string `yaml:"dbname"`
}
}
func main() {
var config Config
File, err := ioutil.ReadFile("l")
if err != nil {
log.Printf("读取配置⽂件失败 #%v", err)
}
侠盗飞车密集err = yaml.Unmarshal(File, &config)
if err != nil {
log.Fatalf("解析失败: %v", err)
}
fmt.Printf("App name is: %v\n", config.App.Name)成都最好的理发店
fmt.Printf("Mysql port is: %d\n", config.Mysql.Port)
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。