1 回答

TA貢獻1804條經(jīng)驗 獲得超8個贊
通過調(diào)試,我發(fā)現(xiàn)了多個問題。首先,yaml似乎并不關(guān)心字段名稱。您必須使用注釋字段
`yaml:"NAME"`
其次,在 YAML 文件中,Include兩者Exclude都只包含一個字符串列表,而不是類似于地圖的東西。所以你的結(jié)構(gòu)變成:
type Paths struct {
Include []string `yaml:"Include"`
Exclude []string `yaml:"Exclude"`
}
它有效。完整代碼:
package main
import (
"fmt"
"gopkg.in/yaml.v2"
)
var str string = `
'Include':
- 'string1'
- 'string2'
'Exclude':
- 'string3'
- 'string4'
`
type Paths struct {
Include []string `yaml:"Include"`
Exclude []string `yaml:"Exclude"`
}
func main() {
paths := Paths{}
err := yaml.Unmarshal([]byte(str), &paths)
fmt.Printf("%v\n", err)
fmt.Printf("%+v\n", paths)
}
- 1 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報