1 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個贊
根據(jù)錯誤:
模型 extConfigYaml 中的錯誤:*yaml:第 4 行:此上下文中不允許映射值
您提供的 yaml 內(nèi)容的縮進(jìn)錯誤,其中models縮進(jìn)級別應(yīng)與縮進(jìn)級別匹配zone。除此之外,不需要為它創(chuàng)建一個結(jié)構(gòu),zone因?yàn)樗且粋€字符串值,但你已經(jīng)為它分配了一個model包含models數(shù)據(jù)的結(jié)構(gòu)。您還應(yīng)該使用大寫字母導(dǎo)出結(jié)構(gòu)。
將您的代碼修改為以下代碼:
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 關(guān)注
- 168 瀏覽
添加回答
舉報(bào)