golang 读取yml格式,多结构体级联

golang 读取yml格式,多结构体级联1 安装 yml 解析包 进入到 gopath 下执行命令 go get gopkg in yaml v2 源码地址 https github com go yaml yaml 2 设置配置文件 config yml ipport 192 168 2 95 10000 startsendtim 2017 01 02 08 08 08

大家好,我是讯享网,很高兴认识大家。

1.安装yml解析包

进入到gopath下执行命令

go get gopkg.in/yaml.v2
讯享网

源码地址https://github.com/go-yaml/yaml

2.设置配置文件config.yml

讯享网ipport: 192.168.2.95:10000 startsendtime: 2017-01-02 08:08:08 sendmaxcountperday: 100 devices: - devid:   nodes: - pkid: 0  bkid: 0 index: 0 minvalue: 0 maxvalue: 60 datatype: normal - pkid: 0  bkid: 0 index: 0 datatype: boolean - devid: 10001  nodes: - pkid: 0  bkid: 1 index: 0 datatype: boolean warnfrequency: 10 sendfrequency: 10

3.编写测试类

package main import ( "fmt" "gopkg.in/yaml.v2" "io/ioutil" ) //配置文件中字母要小写,结构体属性首字母要大写 type Myconf struct { Ipport string StartSendTime string SendMaxCountPerDay int Devices []Device WarnFrequency int SendFrequency int } type Device struct { DevId string Nodes []Node } type Node struct { PkId string BkId string Index string MinValue float32 MaxValue float32 DataType string } func main() { data, _ := ioutil.ReadFile("config.yml") fmt.Println(string(data)) t := Myconf{} //把yaml形式的字符串解析成struct类型 yaml.Unmarshal(data, &t) fmt.Println("初始数据", t) if(t.Ipport==""){ fmt.Println("配置文件设置错误") return; } d, _ := yaml.Marshal(&t) fmt.Println("看看 :", string(d)) }

4.注意

1.配置文件中字母要小写,结构体属性首字母要大写,开发比较快
也可以指定如:yaml:"c",只不过有点麻烦,当然如果重命名必须要指定
2.yaml:",flow"
这个意思是将数组用[“a”,”b”]这样的格式展示,默认展示形式是

讯享网- a - b
小讯
上一篇 2025-03-13 09:54
下一篇 2025-03-21 14:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/127357.html