github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/configfile/yaml.go (about) 1 package configfile 2 3 import ( 4 "gopkg.in/yaml.v2" 5 "io/ioutil" 6 ) 7 8 // YamlTo 转换yaml文件成数据对象. 9 // 10 // 例如: 11 // err := YamlTo("file.yaml", &obj) 12 // 13 func YamlTo(filename string, config interface{}) error { 14 if data, err := ioutil.ReadFile(filename); err != nil { 15 return err 16 } else if err = yaml.Unmarshal(data, config); err != nil { 17 return err 18 } 19 return nil 20 } 21 22 // YamlToMap 转换yaml文件成map对象. 23 // 24 // 例如: 25 // m, err := YamlToMap("file.yaml") 26 // 27 func YamlToMap(filename string) (config map[interface{}]interface{}, err error) { 28 config = make(map[interface{}]interface{}) 29 if data, err := ioutil.ReadFile(filename); err != nil { 30 return config, err 31 } else if err = yaml.Unmarshal(data, &config); err != nil { 32 return config, err 33 } 34 return 35 } 36 37 // Yaml 生成yaml文件. 38 // 39 // 例如: 40 // data, err := Yaml(&obj) 41 // 42 func Yaml(config interface{}) (data []byte, err error) { 43 data, err = yaml.Marshal(config) 44 return 45 }