猿问

无法解组嵌套的 yaml

Yaml 输入:


Tasks:

 - task: 

    name: 123

    retry: 5

    next: 123

 - task: 

    name: 123

    retry: 5

    next: 123

代码:


package main


import (

    "fmt"

    "io/ioutil"

    "os"


    "gopkg.in/yaml.v2"

)


type Tasks []struct {

    Task Task `yaml:"task"`

}


type Task struct {

    Name  string `yaml:"name"`

    Retry int    `yaml:"retry"`

    Next  string `yaml:"next"`

}


func main() {

    var w Tasks

    wfyaml, _ := os.Open(".yaml")

    byteValue, _ := ioutil.ReadAll(wfyaml)

    yaml.Unmarshal(byteValue, &w)

    fmt.Printf("%+v\n", w)

}

输出:[]


我无法弄清楚问题的原因是什么。我已经检查了我能做的。


茅侃侃
浏览 82回答 1
1回答

杨__羊羊

Tasks您错过了结构(游乐场)中的顶层():package mainimport (    "fmt"    "gopkg.in/yaml.v2")const yamlStr = `Tasks: - task:     name: 123    retry: 5    next: 123 - task:     name: 123    retry: 5    next: 123`type File struct {    Tasks Tasks `yaml:"Tasks"`}type Tasks []struct {    Task Task `yaml:"task"`}type Task struct {    Name  string `yaml:"name"`    Retry int    `yaml:"retry"`    Next  string `yaml:"next"`}func main() {    var w File    yaml.Unmarshal([]byte(yamlStr), &w)    fmt.Printf("%+v\n", w)}
随时随地看视频慕课网APP

相关分类

Go
我要回答