I’ve created the following YAML file to provide some config which users need to provide:
Environments:
sys1:
models:
- app-type: app1
service-type: “fds"
- app-type: app2
service-type: “era”
sys2:
models:
- app-type: app1
service-type: “fds"
- app-type: app2
service-type: “era"
https://codebeautify.org/yaml-validator/cbb349ec
Here I have:
- one environment (root)
- the environment contain 1..n
sys
- Each
sys
contain 1..n models instance with key app-type
Now I need to parse this YAML file so I try to build a struct type like:
type Environment struct {
Environment [] sys
}
type sys struct{
Models []Properties
}
type Models struct{
app-type string `yaml:"app-type"`
service-type string `yaml:"service-type"`
}
Now I try to parse this YAML, and I get an error of index out of range.
My questions are:
1. Do I model the YAML correctly?
2. Do I model the struct correctly?
This is the code:
func main() {
y := Environments{}
err := yaml.Unmarshal([]byte(data), &y)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("%+v
", y)
}
data is the yaml.file
.