go - 无法使用 gopkg.in/yaml.v2 解组具有缩进或空值的 yaml 文件
问题描述
我有以下 YML 文件称为test.yml
user_name:Agent1
org_info:
first:hello
second:world
我尝试test.yml
使用以下 golang 代码解组
package main
import (
"log"
"io/ioutil"
"gopkg.in/yaml.v2"
)
func main() {
content, _ := ioutil.ReadFile("./test.yml")
var t interface{}
yaml.Unmarshal(content, &t)
log.Println(t)
}
但是log.Println(t)
给nil
. 我将test.yml
文件缩减为:
user_name:Agent1
org_info:
但是log.Println(t)
还是给了nil
。
如何使用 golang 解组具有不可预测模式的 yaml 文件,其中的字段没有值或导致嵌套和缩进子字段的字段?
还是我应该使用另一个 golang yaml 解析器?
解决方案
yaml.Unmarshal()
返回错误:
yaml:第 2 行:在此上下文中不允许映射值
永远不要跳过错误检查:
var t interface{}
err = yaml.Unmarshal(content, &t)
if err != nil {
log.Fatal(err)
}
在冒号后添加缺少的空格应该,使它们成为 YAML 值指示符:
user_name: Agent1
org_info:
first: hello
second: world
推荐阅读
- python - SQLite 的 Python 编码未填充数据库
- r - R data.table 键和列名。协调
- android - 在片段中请求软输入法偶尔会起作用
- pic - 如何在 MikroC 中从 UART 读取数据
- wordpress - 制作 wordpress 插件,允许客户端在后端输入文本,这些文本将显示在我在前端创建的 div 中
- swift - 如何解决此错误?xcode 生成 Project-Swift.h 错误
- python - ANACONDA NAVIGATOR 未启动
- java - 我想从 firebase 数据库中的单个 Textview 中获取完整的数据
- javascript - 在本地存储上保存背景颜色
- ember.js - Ember、PostCSS、SASS 和 @apply 的问题