为了账号安全,请及时绑定邮箱和手机立即绑定

无法将 yaml 数组映射和解组到 golang 结构

无法将 yaml 数组映射和解组到 golang 结构

Go
临摹微笑 2022-06-06 16:56:20
我想将我的~/.kube/config文件解组为一个go结构。我正在使用以下方法func ListContexts(pathToKubeConfig string) ([]string, error) {    type Contexts struct {        Ctx []string `yaml:"contexts"`        //ApiVersion string              `yaml:"apiVersion"`    }    var ctx []string    var c Contexts    file, err := ioutil.ReadFile(pathToKubeConfig)    if err != nil {        return nil, err    }    err = yaml.Unmarshal(file, &c)    fmt.Printf("%#v\n", c.Ctx)    return ctx, nil}}众所周知,kubeconfig 文件具有以下结构:apiVersion: v1. . . contexts:- context:    cluster: cluster1    user: user1  name: context1- context:    cluster: cluster2    user: user2  name: context2我的方法是打印:[]string(nil)既然context是 yaml 数组,为什么我映射到字符串数组时不起作用?当我取消注释ApiVersion我的结构字段并尝试打印它时,它可以工作。
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

context是一个数组,但不是字符串数组。要么[]map[string]interface{}用于上下文,要么将上下文定义为结构,并使用其数组:


type context struct {

   Cluster string `yaml:"cluster"`

   ...

}


type contexts struct {

   Contexts []context `yaml:"contexts"`

}


查看完整回答
反对 回复 2022-06-06
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号