【发布时间】:2017-04-30 08:41:13
【问题描述】:
我正在尝试使用 Golang 解析 yaml 文件。我定义了以下types:
type DockerNetwork struct {
MyNetwork struct {
driver string
} `yaml:"my_network"`
}
// DockerNetworks represent the docker Networks type
type DockerNetworks struct {
networks []DockerNetwork
}
所以我有我的单元测试:
func TestDockerNetwork(t *testing.T) {
dn := DockerNetworks{}
var data = `
networks:
my_network:
driver: bridge
`
err := yaml.Unmarshal([]byte(data), &dn)
if err != nil {
log.Fatalf("error: %v", err)
t.Error("Could not Unmarshal the data")
}
log.Println(fmt.Sprintf("--- t:\n%v\n\n", dn))
}
我希望它可以工作,但是我没有收到任何输入:
2016/12/14 13:38:12 --- t:
{{}}
我做错了什么?
【问题讨论】:
-
错误信息中到底有什么不清楚的地方?您的 YAML 是一个映射,并且映射不能被解组为一个切片。所以也许使用地图?
-
@Volker 让我重新提出我的问题...
-
@Volker 我已经更新了我的问题
-
您的结构中有未导出的字段,而您的 yaml 中仍然只有映射。
-
您必须将
networks和driver字段的首字母大写才能公开