为了账号安全,请及时绑定邮箱和手机立即绑定

文件以 - 开头时进行 Yaml 解析

文件以 - 开头时进行 Yaml 解析

Go
胡子哥哥 2022-10-24 09:48:55
我正在尝试使用“gopkg.in/yaml.v3”包将 yaml 文件解析为 go。我无法解决的问题是解析以 - 开头的文件。例如:---- type: people  info:   - { name: John, last: Doe }   ...所以当我尝试解析这个package mainimport (  "fmt"  "io/ioutil"  "log"    "gopkg.in/yaml.v3")type YamlFile struct {  type string `yaml:"type"`}func main() {        d := YamlFile{}        src, err := ioutil.ReadFile("test1.yaml")        if err != nil {                log.Println(err)        }        err = yaml.Unmarshal(src, &d)        if err != nil {                log.Printf("error: %v", err)        }        fmt.Println(d)}输出:error: yaml: unmarshal errors: line 2: cannot unmarshal !!seq into main.YamlFile当 - 从文件中删除时,上面的代码有效---type: peopleinfo:   - { name: John, last: Doe }...但是我无法重新格式化文件,所以我需要知道我在尝试使用 - 进行解析时做错了什么。感谢您提供正确方向的任何指示。
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

-表示它是一个列表/数组。因此,您必须在 Go 中解组为切片或数组。

更改d := YamlFile{}d := []YamlFile{},您将不再收到该错误。

但还要注意,您定义的结构总是会得到一个空结果,因为它没有导出字段。

请尝试:

type YamlFile struct {
  Type string `yaml:"type"`
  }

在操场上看到它



查看完整回答
反对 回复 2022-10-24
  • 1 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信