解析YAML配置文件。

1、创建YAML文件

  1. SiteName: joker
  2. SiteAddr: Chongqing
  3. Https: true
  4. Nginx:
  5. Port: 443
  6. LogPath: "/var/log//nginx/nginx.log"
  7. Path: "/opt/nginx/"

2、用Go解析YAML文件

  1. package main
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "gopkg.in/yaml.v2"
  6. )
  7. //Nginx nginx 配置
  8. type Nginx struct {
  9. Port int `yaml:"Port"`
  10. LogPath string `yaml:"LogPath"`
  11. Path string `yaml:"Path"`
  12. }
  13. //Config 系统配置配置
  14. type Config struct{
  15. Name string `yaml:"SiteName"`
  16. Addr string `yaml:"SiteAddr"`
  17. HTTPS bool `yaml:"Https"`
  18. SiteNginx Nginx `yaml:"Nginx"`
  19. }
  20. func main() {
  21. var setting Config
  22. config, err := ioutil.ReadFile("./first.yaml")
  23. if err != nil {
  24. fmt.Print(err)
  25. }
  26. yaml.Unmarshal(config,&setting)
  27. fmt.Println(setting.Name)
  28. fmt.Println(setting.Addr)
  29. fmt.Println(setting.HTTPS)
  30. fmt.Println(setting.SiteNginx.Port)
  31. fmt.Println(setting.SiteNginx.LogPath)
  32. fmt.Println(setting.SiteNginx.Path)

函数简介:

  1. ioutil.ReadFile(“./first.yaml”) :读取yaml文件信息
  2. yaml.Unmarshal()

第一个输入参数:获取 ioutil.ReadFile 的值,为[]byte类型
第二个参数输出参数,可以为任意类型。