我有以下名为test.yml
的YML文件
user_name:Agent1
org_info:
first:hello
second:world
我尝试使用以下golang代码解组test.yml
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解析器?
答案 0 :(得分:3)
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