【发布时间】:2019-01-20 09:04:40
【问题描述】:
我有以下 yaml ,当我尝试解析它时出现错误,知道这里可能缺少什么吗?我不确定如何构造区域属性。
T这是有效的 yaml
https://codebeautify.org/yaml-validator/cb42f23a
错误:
模型 extConfigYaml 中的错误:*yaml:第 4 行:映射值不是 在这种情况下允许
type ExternalConfig struct {
Landscape zone `yaml:"Landscape"`
}
type zone struct {
zone models `yaml:"zone"`
}
type models struct {
models []Model `yaml:"models"`
}
type Model struct {
AppType string `yaml:"app-type"`
ServiceType string `yaml:"service-type"`
}
var external_config = []byte(`
Landscape:
zone: zone1
models:
- app-type: app1
service-type: GCP
- app-type: app2
service-type: AMAZON
zone: zone2
models:
- app-type: app3
service-type: AZURE
- app-type: app4Í
service-type: HEROKU
`)
extConfigYaml := ExternalConfig{}
err = yaml.Unmarshal([]byte(external_config), &extConfigYaml)
if err != nil {
log.Fatalf("error in model extConfigYaml: %v", err)
}
fmt.Printf("%+v\n", extConfigYaml)
【问题讨论】:
-
标识很可能不正确。如果从
models:行的开头删除一个空格,它就会变得清晰且可解析。 -
codebeautify 使用了有缺陷的 PHP YAML 解析器。通常,使用该站点无法保证您的 YAML 是否有效,如果它在那里解析,则不能保证。也没有理由不只是在您的问题中包含那个小的 YAML 文档。一旦 codebeautify 网站出现故障,您的问题对这里的访问者来说就变得毫无用处。