当前位置: 首页 > news >正文

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 文件的方法。


http://www.mrgr.cn/news/62618.html

相关文章:

  • Element UI 表格组件复选框实现单选效果
  • stm32工程建立流程(没有标准库,寄存器编写程序)
  • ubuntu安装停留在updates and other software界面
  • 利用EasyExcel实现简易Excel导出
  • NVR批量管理软件/平台EasyNVR多个NVR同时管理支持视频投放在电视墙上
  • http 从请求到响应的过程中发生了什么
  • ES聚合(仅供自己参考)
  • 【安全性分析】BAN逻辑 (BAN Logic)之详细介绍
  • 天润融通邀您参加AI破局·聚力增长行业论坛
  • 去人声留伴奏免费软件,这四款软件可别错过
  • 智能码二维码zhinengma.cn如何赋能工业产品质量安全追溯
  • 【深度学习】实验 — 动手实现 GPT【二】:注意力机制、注意力掩码、多头注意力机制
  • ABAP RFC SQL 模糊查询和多个区间条件
  • 一些老程序员不愿透露的工作小技巧…
  • 【HDRP下实现视差效果_CubeMap和九宫格ArrayMap形式】
  • 2024年“炫转青春”山东省飞盘联赛盛大开赛——临沭县青少年飞盘运动迅速升温
  • 隐私保护下的数据提取策略
  • USC H5S支持大华ICC平台对接
  • QT:QThread:重写run函数
  • python函数连续
  • ARM base instruction -- adc
  • 2181、合并零之间的节点
  • YOLOv4和Darknet实现坑洼检测
  • 如何成为一名优秀的程序员,进来看看
  • 网络安全不知道怎么学,看完这篇,中学生都能学会
  • iOS 再谈KVC、 KVO