无法使用 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 解析器吗?


湖上湖
浏览 170回答 1
1回答

呼唤远方

yaml.Unmarshal()返回错误:yaml:第 2 行:此上下文中不允许映射值永远不要跳过错误检查:var t interface{}err = yaml.Unmarshal(content, &t)if err != nil {    log.Fatal(err)}在冒号后添加缺失的空格,使它们成为 YAML 值指示符:user_name: Agent1org_info:  first: hello  second: world
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go