Go 语言解析 yaml 文件的方法

Go 语言没有内置解析 yaml 文件的功能,实现 yaml 的解析可以使用第三方库 gopkg.in/yaml.v2gopkg.in/yaml.v3

下面以解析 config.yml 文件为例,演示解析代码的过程。

使用 go get gopkg.in/yaml.v3 添加引用。

在 config 目录下,新增文件 config.yml 文件,内容如下:

mongodb:  
  uri: "mongodb://localhost:27017"       # MongoDB连接串  
  database: "testdb"             # 数据库名称  
  posts_collection: "testcoll"              # 存储 Post 的集合

这里定义了一个 mongodb 的配置,包含了连接、数据库名称和存储集合名。

接着,对照上面的配置,定义 Config 结构

type Config struct {  
    MongoDB struct {  
       Database       string `json:"database"`  
       PostCollection string `json:"post_collection"`  
       URI            string `json:"uri"`  
    } `yaml:"mongodb"`  
}

最后,创建 loadConfig 方法,读取文件并解析

func loadConfig() Config {  
    var conf Config  
    dir, err := os.Getwd()  
    if err != nil {  
       log.Fatalf("fail to get current directory: %v", err)  
    }  
    filename := path.Join(dir, "/config/config.yaml")  
    data, err := os.ReadFile(filename)  
    if err != nil {  
       log.Fatalf("failed to read config.yaml: %v", err)  
    }  
    if err = yaml.Unmarshal(data, &conf); err != nil {  
       log.Fatalf("failed to parse config.yaml: %v", err)  
    }  
    return conf  
}

os.Getwd() 获取当前工作目录,然后使用 path.Join 拼接完整的文件名。

以上,就是 go 解析 yaml 文件的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SiliconMeow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值