Я пытаюсь разобрать файл yaml с помощью Go. К сожалению не могу понять как. У меня есть файл yaml:
---
firewall_network_rules:
rule1:
src: blablabla-host
dst: blabla-hostname
...
У меня есть этот код Go, но он не работает:
package main
import (
"fmt"
"io/ioutil"
"path/filepath"
"gopkg.in/yaml.v2"
)
type Config struct {
Firewall_network_rules map[string][]string
}
func main() {
filename, _ := filepath.Abs("./fruits.yml")
yamlFile, err := ioutil.ReadFile(filename)
if err != nil {
panic(err)
}
var config Config
err = yaml.Unmarshal(yamlFile, &config)
if err != nil {
panic(err)
}
fmt.Printf("Value: %#v\n", config.Firewall_network_rules)
}
Когда я запускаю это, я получаю сообщение об ошибке. Я думаю, это потому, что я не создал структуру для ключей/значений src и dst. К вашему сведению: когда я изменяю это на список, это работает.
Итак, приведенный выше код анализирует это:
---
firewall_network_rules:
rule1:
- value1
- value2
...