yaml数组解析_解析动态Yaml文件

我有一个yaml文件,当前写为:

keys:

- key: secret/dog

values:

- username: shiba

- password: inu

- key: secret/cat

values:

- dbhost: localhost

- words: meow

但是,此yaml文件经常更改,因此每次可以使用不同的值添加新条目:

keys:

- key: secret/dog

values:

- username: shiba

- password: inu

- key: secret/cat

values:

- dbhost: localhost

- words: meow

- key: secret/mouse

values:

- color: white

- key: secret/clouds

values:

- type: fluffy

我从使用gopkg.in/yaml.v2包开始就知道,如果所有值都相同,我可以解析yaml文件,例如:

type Secrets struct {

Keys []struct {

Key string `json:"key"`

Values []struct {

Username string `json:"username"`

Password string `json:"password"`

} `json:"values"`

} `json:"keys"`

}

func main() {

var secret Secrets

reader, err := os.Open("demo.yml")

if err != nil {

log.Fatal(err)

}

buf, _ := ioutil.ReadAll(reader)

yaml.Unmarshal(buf, &secret)

fmt.Printf("%+v\n", secret.Keys[1].Key)

}

在上面的示例中,它仅适用于密钥/狗密钥,而不适用于其他密钥。

当新值经常添加到yaml文件中时,如何在Go中执行此操作?

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值