golang学习笔记之yaml文件处理
来源:互联网 发布:有数据分析软件吗 编辑:程序博客网 时间:2024/03/29 13:47
golang可以通过Unmarshal和Marshal函数处理json数据,当前如果你是yaml文件也可以解析,毕竟yaml和json只是不同的数据格式。先看例子:
package mainimport ( "fmt" "log" "gopkg.in/yaml.v2")var data = `a: Easy!b: c: 2 d: [3, 4]`type T struct { A string B struct { RenamedC int `yaml:"c"` D []int `yaml:",flow"` }}type NotknownType struct { S1, S2, S3 string}type Person struct { Name string Age int}func (n NotknownType) String() string { return n.S1 + " - " + n.S2 + " - " + n.S3}func main() { t := T{} err := yaml.Unmarshal([]byte(data), &t) fmt.Println(t.B.D) if err != nil { log.Fatalf("error: %v", err) } fmt.Printf("--- t:\n%v\n\n", t) d, err := yaml.Marshal(t) if err != nil { log.Fatalf("error: %v", err) } fmt.Printf("--- t dump:\n%s\n\n", string(d)) m := make(map[interface{}]interface{}) err = yaml.Unmarshal([]byte(data),m) if err != nil { log.Fatalf("error: %v", err) } fmt.Printf("--- m:\n%v\n\n", m) d, err = yaml.Marshal(m) if err != nil { log.Fatalf("error: %v", err) } fmt.Printf("--- m dump:\n%s\n\n", string(d))}
上面的例子和简单,就是通过Unmarshal将字符串(yaml文件)转化成结构体,也可以通过Marshal将结构再转成字符串。结果如下:
[3 4]
— t:
{Easy! {2 [3 4]}}
— t dump:
a: Easy!
b:
c: 2
d: [3, 4]
— m:
map[a:Easy! b:map[c:2 d:[3 4]]]
— m dump:
a: Easy!
b:
c: 2
d:
- 3
- 4
0 0
- golang学习笔记之yaml文件处理
- 【Yaml】Yaml学习笔记
- OpenCV学习笔记之“文件I/O,XML/YAML”
- golang学习笔记之---waitgoup
- golang学习笔记之range
- golang学习笔记之赋值
- OpenCV学习笔记:输入输出XML和YAML文件
- 5、Python 处理 yaml 文件
- OpenCV学习之建立YAML文件描述CvFileStorage
- linux学习笔记之文件处理
- Golang之bytes.buffer学习笔记
- Golang之bytes.buffer学习笔记
- Golang之文本处理
- OpenCV学习笔记(六)——对XML和YAML文件实现I/O操作
- opencv学习笔记(二)-对xml和yaml文件的读写操作
- OpenCV学习笔记(六)——对XML和YAML文件实现I/O操作
- OpenCV学习笔记——对XML和YAML文件实现I/O操作
- OpenCV学习笔记(六)——对XML和YAML文件实现I/O操作
- 第一讲 Android 屏幕适配基本概念
- photoshop打开图片没反应问题的解决以及改变图片尺寸
- bzoj 3275: Number 最小割
- 数据结构与算法(c++)--prim算法
- LeetCode 148. Sort List
- golang学习笔记之yaml文件处理
- 感觉非常棒的ssm框架搭建
- 2017武汉大学校赛网络预选赛e题
- 在Eclipse中使用Mybatis
- Oracle的trunc函数
- Android常用的15个框架
- 12 学习阶段总结
- 登录界面及记住密码的实现
- CSS"盒子模型"