Go实现yaml文件的读取和生成
前言
在日常的开发中我们经常会遇到这样的需求,实现yaml文件的读取和生成,读取的方式有两种方式,知道数据结构的前提下,我们可以构建相对应的结构体进行解析即可,在不知道对应结构体的情况下,我们可以通过构建一个通用的map进行接收。
yaml文件数据
languages:
- Ruby
- Perl
- Python
websites:
YAML: yaml.org
Ruby: ruby-lang.org
Python: python.org
Perl: use.perl.org
yaml文件的读取
1、 依赖下载
go get gopkg.in/yaml.v3
2、map解析
data, err := ioutil.ReadFile("17/test.yaml")
if err != nil {
log.Fatalln(err)
}
m := map[string]interface{
}{
}
err = yaml.Unmarshal(data, &m)
if err != nil {
log.Fatalln(err)
}
3、struct结构解析
package main
import (
"fmt"
"io/ioutil"
"log"
"gopkg.in/yaml.v3"
)
type Config struct {
Languages []string `yaml:"languages"`
Websites map[string]string `yaml:"websites"`
}
func main() {
data, err :=