golang 中解析 yaml 格式内容可以使用 yaml.v3 库来解决。下载 go 依赖
1. 示例 yaml 数据
2. 普通解析
普通解析流程,解析到 map 对象,会失去对 key 的定义顺序
3. 顺序解析 yaml 中的 key
yaml3 定义了 yaml.Node 对象
第一种方式
可以通过实现 UnmarshalYAML() 接口,来实现自定义对象的解析,并且保证解析 key 的顺序性
第二种方式
直接将 bytes 解析到 yaml.Node 中,此时 yaml.Node 就是文档对象
4. 顺序解析后回写问题
yaml 中的 node 在更新完成后,回写内容时,虽然保留了注释,但是会去掉空白行
为了保证和原来的文件相同的空白行和注释内容,可以对 yaml 内容做如下处理
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。