作业: cobra - 02 读取配置配置文件 (作业解析和思考题)
作业要求
- 使用 https://github.com/spf13/cobra 实现命令工具
- 命令具有以下参数
--config
,-c
配置文件
配置文件如下
|
|
- 将配置文件保存为
JSON
格式
|
|
输出结果
|
|
作业解析
json
和 yaml
是 最常用的 配置文件类型, 除此之外还有 ini, toml, xml
等。
解析方法 一般是
Marshal(v any) ([]byte, error)
将结构体 解析 成[]byte
类型。Unmarshal(data []byte, v any) error
将[]byte
映射 到结构体中。 这里的v
需要是 指针类型
另外, 不同的 解析库对应的的 方法名称 和 实现逻辑 也不尽相同, 使用的时候需要自己研究。
有些库, 在名字上可能具有一定变种,但也有迹可循。 比如
MarshalJSON
MarshalYAMl
常用的解析库
json
:encoding/json
yaml
:gopkg.in/yaml.v3
,gopkg.in/yaml.v2
v2 和 v3 有区别, 自己研究。
思考题?
- 为什么 json 第一次 Name 和 Age 是 大写字母 开头的?
- yaml, json 解析库的 解析逻辑顺序是什么 ?
- 怎么样忽略某个字段的解析?
- 原文链接:https://typonotes.com/posts/2023/01/24/devopscamp-cobra-binding-config-file/cobra02/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。