1 回答

TA贡献1852条经验 获得超1个赞
根据错误:
模型 extConfigYaml 中的错误:*yaml:第 4 行:此上下文中不允许映射值
您提供的 yaml 内容的缩进错误,其中models缩进级别应与缩进级别匹配zone。除此之外,不需要为它创建一个结构,zone因为它是一个字符串值,但你已经为它分配了一个model包含models数据的结构。您还应该使用大写字母导出结构。
将您的代码修改为以下代码:
package main
import (
"fmt"
"log"
"gopkg.in/yaml.v2"
)
type ExternalConfig struct {
Landscape Zone `yaml:"Landscape"`
}
type Zone struct {
Zone string `yaml:"zone"`
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
`)
func main() {
extConfigYaml := ExternalConfig{}
err := yaml.Unmarshal(external_config, &extConfigYaml)
if err != nil {
log.Fatalln("error in model extConfigYaml: %v", err)
}
fmt.Printf("%+v\n", extConfigYaml)
}
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报