go解析yaml的一个例子

yaml格式文件 

Account:
  Address:       ge1yy3ygsfxl8t4gdnwtqfrn62pnl50nn72xayj8a
  Pubkey:        
  Coins:         10000499300000000stake
  AccountNumber: 11
  Sequence:      4

struct结构体

type Config struct {
	Accounts Account `yaml:"Account"`
}
type Account struct {
	Address       interface{} `yaml:"Address"`
	PubKey        interface{} `yaml:"PubKey"`
	Coins         interface{} `yaml:"Coins"`
	AccountNumber interface{} `yaml:"AccountNumber"`
	Sequence      interface{} `yaml:"Sequence"`
}

完整代码



import (
	"os/exec"
	"fmt"
	"gopkg.in/yaml.v2"
)

type Config struct {
	Accounts Account `yaml:"Account"`
}
type Account struct {
	Address       interface{} `yaml:"Address"`
	PubKey        interface{} `yaml:"PubKey"`
	Coins         interface{} `yaml:"Coins"`
	AccountNumber interface{} `yaml:"AccountNumber"`
	Sequence      interface{} `yaml:"Sequence"`
}

var out=`
Account:
  Address:       ge1yy3ygsfxl8t4gdnwtqfrn62pnl50nn72xayj8a
  Pubkey:        
  Coins:         10000499300000000stake
  AccountNumber: 11
  Sequence:      4
package main
`

func main() {
	var b map[string]map[string]interface{}
	var cc Config
    //通过map解析
	err = yaml.Unmarshal(out,&b)
	if err != nil {
		fmt.Println(err)
		return
	}
    //通过结构体解析
	err = yaml.Unmarshal(out,&cc)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(out))
	fmt.Printf("%v\n", b["Account"]["Coins"])
	fmt.Printf("%v\n", cc.Accounts.Coins)
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值