登录
首页 >  Golang >  Go问答

解析带有缩进或空值的YAML文件时,无法使用 gopkg.in/yaml.v2

来源:stackoverflow

时间:2024-02-27 22:12:25 425浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《解析带有缩进或空值的YAML文件时,无法使用 gopkg.in/yaml.v2》,聊聊,我们一起来看看吧!

问题内容

我有以下名为 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 解析器吗?


解决方案


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

以上就是《解析带有缩进或空值的YAML文件时,无法使用 gopkg.in/yaml.v2》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>