EdgexGo2.0学习-15 解析yaml数据

1、EdgeXGo的yaml格式如下
image
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)

}

posted @ 2021-11-01 23:05  zhaogaojian  阅读(106)  评论(0编辑  收藏  举报