go解析yaml文件配置

go

gopkg.in/yaml.v2 是 go 语言解析 yaml 格式配置文件的开源库,

源码地址如下:

https://github.com/go-yaml/yaml

使用安装步骤如下:

在命令行执行

go get gopkg.in/yaml.v2

示例代码:

conf.yaml 文件

rabbitmq:
    host: localhost
    port: 5672
    username: admin
    password: password

需要注意 yaml 文件里面的字符都是小写

go 代码示例:

package main

import (
        "fmt"
        "io/ioutil"
        "log"

        yaml "gopkg.in/yaml.v2"
)

type Conf struct {
        RabbitMQ struct {
                Host     string `yaml:"host"`
                Port     int64  `yaml:"port"`
                Username string `yaml:"username"`
                Password string `yaml:"password"`
        }
}

func readConf(filename string) (*Conf, error) {
        buf, err := ioutil.ReadFile(filename)
        if err != nil {
                return nil, err
        }

        var conf Conf
        err = yaml.Unmarshal(buf, &conf)
        if err != nil {
                return nil, fmt.Errorf("in file %q: %v", filename, err)
        }

        return &conf, nil
}

func main() {
        conf, err := readConf("conf.yaml")
        if err != nil {
                log.Fatal(err)
        }
        fmt.Print("%v", conf)
}

 

Tagged

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注