go 解析 toml

5 篇文章 0 订阅
1 篇文章 0 订阅

小白表示,真的是搞不懂的东西,一用就会出问题

为什么这么简单的 toml解析,都能出不来也是服了。

这样说吧,已经有了开源的解析库,只要调用一下,就可以解析了,可是就是读不出来数据,你说奇怪吗?

就是还是格式不对呗。

标准库:
github: https://github.com/BurntSushi/toml
安装:go get github.com/BurntSushi/toml

使用,我给两种方法,一种就是DecodeFile直接解,第二种,Unmarshal,是我调试用的
1.
if _, err := toml.DecodeFile(cpath, &gtestcf); err != nil {
fmt.Printf(“toml.DecodeFile error \n”, err)
return dirs, err
}
2.
func readConfig() {
var fcontent []byte
var gtestcf gtest
var fpath string = “./gtest.toml”

fcontent, err := ioutil.ReadFile(fpath)
if err != nil {
	fmt.Printf("ioutil.ReadFile error \n", err)
}
fmt.Printf("fcontent is %v\n", fcontent)

toml.Unmarshal(fcontent, &gtestcf)

fmt.Printf("toml.Unmarshal gtestis %v \n", gtestcf)

}

经过调试发现了toml 格式 和结构体命名 规律
大家感受一下:

在这里插入图片描述

在这里插入图片描述

聪明的你们肯定看出规律了吧,我不想多说,调的烦了
两点注意:
一个是 结构 ,整个文件是 一层{} 你定义的其他结构就在二层 {}
这个文件现在是 { title, dirconf{projdir }}

要读取,就给整个文件定义一个 结构体,gtest,然后才是你自定义的其他结构 如dirconf
二是名字对应关系,dirconf 是gtest结构下 变量名,而不是结构体名,也就是你自定义的结构体随意,但是变量名要和toml文件中的【xxx】相同
很坑,我是没有想到,要调了才知道,ε=(´ο`*)))唉,小白就是白痴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值