如何在 Go 中解析 yaml 文件
Go 语言没有内置解析 yaml 文件的功能,实现 yaml 的解析可以使用第三方库 gopkg.in/yaml.v2
和 gopkg.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 文件的方法。
本文来自博客园,作者:硅基喵,转载请注明原文链接:https://www.cnblogs.com/denglei1024/p/18517957
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具