1、EdgeXGo的yaml格式如下
2、网上找到两种常用的解析yaml格式的方法
"gopkg.in/yaml.v2"
"github.com/ghodss/yaml"
使用yaml.v2的方法解析不全,使用ghodss先转换为json,然后再使用json.UnMarshal正常,当然也可以直接yaml.UnMarshal
3、示例
/**
* @description: 获取单个profile具体信息
* @param {*}
* @return {*}
*/
func GetProfileDetail(profilename string) {
deviceprofile := "http://192.168.50.88:4000/api/v2/profile/yaml/name/" + profilename
profiledetail := profiledetail.Profiledetail{}
client := &http.Client{}
url := fmt.Sprintf(deviceprofile)
//提交请求
request, err := http.NewRequest("GET", url, nil)
//异常捕捉
if err != nil {
panic(err)
}
//处理返回结果
response, _ := client.Do(request)
//关闭流
defer response.Body.Close()
//检出结果集
body, err := ioutil.ReadAll(response.Body)
if err != nil {
logutil.Log.Error("ioutil.ReadAll failed ,err:%v", err)
}
yaml.Unmarshal(body, &profiledetail)
}