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)
|
|||
|
|
}
|