dc80b557e3
2020/12/16: 添加YAML和结构体转换工具
58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
/*
|
||
* @Author : huangzj
|
||
* @Time : 2020/12/16 11:56
|
||
* @Description:
|
||
*/
|
||
|
||
package yaml
|
||
|
||
import (
|
||
"gopkg.in/yaml.v2"
|
||
"io/ioutil"
|
||
)
|
||
|
||
//把文件中的yaml结构转换成结构体
|
||
func GetYamlToStructByFile(fileName string, object interface{}) error {
|
||
yamlFile, err := ioutil.ReadFile(fileName)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
err = yaml.Unmarshal(yamlFile, object)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
return nil
|
||
}
|
||
|
||
//通过字符串的Yaml转换成结构体
|
||
func GetYamlToStructByString(content string, object interface{}) error {
|
||
err := yaml.Unmarshal([]byte(content), object)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
return nil
|
||
}
|
||
|
||
//通过字符串的Yaml转换成map
|
||
func GetYamlToMap(content string) (error, map[interface{}]interface{}) {
|
||
m := make(map[interface{}]interface{}, 0)
|
||
err := yaml.Unmarshal([]byte(content), m)
|
||
if err != nil {
|
||
return err, m
|
||
}
|
||
|
||
return nil, m
|
||
}
|
||
|
||
//把结构体转换成yaml的字符串
|
||
func GetStructToYaml(object interface{}) (error, string) {
|
||
result, err := yaml.Marshal(object)
|
||
if err != nil {
|
||
return err, ""
|
||
}
|
||
return nil, string(result)
|
||
}
|