gpt4 book ai didi

go - 解析 yaml 结构错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:43 26 4
gpt4 key购买 nike

我有以下 yaml ,当我尝试解析它时出现错误,知道这里可能遗漏了什么吗?我不确定如何构造区域属性。

T他是有效的 yaml

https://codebeautify.org/yaml-validator/cb42f23a

错误:

error in model extConfigYaml: *yaml: line 4: mapping values are not allowed in this context

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)

最佳答案

根据错误:

error in model extConfigYaml: *yaml: line 4: mapping values are not allowed in this context

您提供的 yaml 内容的缩进有误,其中 models 缩进级别应与 zone 缩进级别匹配。除此之外,无需为 zone 创建结构,因为它是一个字符串值,但您已为其分配了一个包含 modelsmodel 结构> 数据。您还应该使用大写字母导出结构。

将您的代码修改为以下代码:

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)
}

关于 Playground 的工作代码

关于go - 解析 yaml 结构错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51825622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com