feat(Go-Tool):
2020/12/16: 添加YAML和结构体转换工具
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* @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)
|
||||
}
|
||||
Reference in New Issue
Block a user