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: 123456789
  nodes:- pkid: 0
    bkid: 0index: 0minvalue: 0maxvalue: 60datatype: normal- pkid: 0
    bkid: 0index: 0datatype: boolean
- devid: 10001
  nodes:- pkid: 0
    bkid: 1index: 0datatype: boolean
warnfrequency: 10
sendfrequency: 10

3.编写测试类

package mainimport ("fmt""gopkg.in/yaml.v2""io/ioutil"
)//配置文件中字母要小写,结构体属性首字母要大写type Myconf struct {Ipport    stringStartSendTime stringSendMaxCountPerDay intDevices []DeviceWarnFrequency intSendFrequency int
}
type Device struct {DevId stringNodes []Node
}
type Node struct {PkId stringBkId stringIndex stringMinValue float32MaxValue float32DataType 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

golang 读取yml格式,多结构体级联相关推荐

  1. Golang Json文件解析为结构体工具-json2go

    代码地址如下: http://www.demodashi.com/demo/14946.html 概述 json2go是一个基于Golang开发的轻量json文件解析.转换命令行工具,目前支持转换输出 ...

  2. c拆分字符串,并按照指定格式存入结构体数组

    c将字符串拆分,并按照指定格式存入结构体数组 函数功能 代码实现 结果显示 函数功能 字符串格式:username1,password1;username2,password2; 结构体格式: typ ...

  3. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  4. c语言结构体数组存入文件_关于从文件中读取数据并写入结构体数组

    已结贴√ 问题点数:25 回复次数:10 关于从文件中读取数据并写入结构体数组 各位大大好,本人新手一枚,最近写简单的通讯录的c程序,其他功能完好,最后一个将txt文件中的数据写入结构体数组的函数无法 ...

  5. golang 初始化并赋值_golang 结构体初始化时赋值格式介绍

    golang在给结构体赋值初始值时,用:分割k,v值 x := ItemLog{ Id: GetUuid(), ItemId: u.Id, UsrId: "123", Name: ...

  6. Golang 基础知识(十一.struct结构体)

    struct结构体 1.定义 2.匿名结构体 3.键值对初始化 4.构造函数 4.1 (值)方法和接收者 4.2 (指针)方法和接受者 4.3 结构体的"继承 4.4 序列化与反序列化 4. ...

  7. matlab从工作区读取一维数组和结构体

    https://ww2.mathworks.cn/help/simulink/slref/_mw_1c324ca8-bd1d-4334-aa0d-ac5f79839808.html 摘自 MathWo ...

  8. Golang学生管理系统(函数+结构体版)

    背景 使用golang结构体实现学生管理系统,根据用户输入实现学生的增删改查. package mainimport ("fmt""os" )// var sm ...

  9. Golang 笔记 2 函数、结构体、接口、指针

    一.函数 Go中函数是一等(first-class)类型.我们可以把函数当作值来传递和使用.Go中的函数可以返回多个结果.   函数类型字面量由关键字func.由圆括号包裹声明列表.空格以及可以由圆括 ...

最新文章

  1. TOP (100) PERCENT
  2. 螃蟹不能吃的四个部位,爱吃螃蟹的一定要进来看看。
  3. 学计算机打字一段话,初学电脑基础知识打字
  4. ios tableview分组间距
  5. Silverlight学习笔记十七BingMap(三)之地图的地区标识
  6. 在.NET3.5平台上使用LinQ to SQL + NBear 创建三层WEB应用
  7. 【数据挖掘】数据预处理
  8. 第1章 Hello MFC
  9. jQuery导航菜单防刷新
  10. 关于seata分布式事务框架的几个问题
  11. (38)System Verilog线程并行执行(fork-join_none)
  12. 迪士尼前高管凯文·梅耶尔加盟字节跳动,出任COO
  13. mysql主动自增可以_Mysql join联表及id自增实例解析
  14. 指针02:指针所占内存空间
  15. 交互设计实用指南系列(9)— 一次点击
  16. 三十岁还没做到管理层的人,后来都怎么样了?
  17. choose标签使用
  18. pcntl php windows_PHP各版本安装pcntl扩展
  19. 枫叶蓝代码生成工具 和对服装行业的一些感悟
  20. Springboot中使用阿里云短信验证码服务

热门文章

  1. matlab 平面 偶极子 声场,二维矢量声强的误差分析
  2. 领导者如何提升卓越领导能力
  3. Java的教学辅助系统,信息管理系统课程辅助教学平台
  4. 树莓派-远程逗猫(二) —— 摄像头连接
  5. 矿渣玩客云刷机armbian教程及使用(新手上路篇)
  6. 浅谈MVVM是如何实现数据双向绑定的?
  7. python turtle什么意思_python turtle 简介
  8. Himall商城基本订单消息类
  9. C++中实现HMAC单向散列类
  10. KLEE 使用(三)------ 使用 KLEE 为二分查找生成测试