我有以下程序,我需要在其中解析具有以下结构的 yaml
https://codebeautify.org/yaml-validator/cbabd352 这是有效的 yaml,我使用 byte 使其更简单,也许在复制粘贴到问题期间更改了缩进,但您可以在链接中看到 yaml 有效
yaml 有一个 api_version 和跑步者,对于每个跑步者(键是名称)我有一个命令列表,我需要打印这些命令,function1我function4在这里做错了什么?
package main
import (
"fmt"
"log"
"gopkg.in/yaml.v2"
)
var runContent = []byte(`
api_ver: 1
runners:
- name: function1
type:
- command: spawn child process
- command: build
- command: gulp
- name: function2
type:
- command: run function 1
- name: function3
type:
- command: ruby build
- name: function4
type:
- command: go build
`)
type Result struct {
Version string `yaml:"api_ver"`
Runners []Runners `yaml:"runners"`
}
type Runners struct {
Name string `yaml:"name"`
Type []Command `yaml:"type"`
}
type Command struct {
Command string `yaml:"command"`
}
func main() {
var runners []Result
err := yaml.Unmarshal(runContent, &runners)
if err != nil {
log.Fatalf("Error : %v", err)
}
fmt.Printf("%+v", runners[0])
}
我得到的错误cannot unmarshal !!map into []main.Result
我无法更改 yaml,它应该完全像这样
https://codebeautify.org/yaml-validator/cbabd352
这是代码 https://play.golang.org/p/zidjOA6-gc7
倚天杖
相关分类