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 關注
- 170 瀏覽
添加回答
舉報