Analyser efficacement les fichiers YAML dans Go
Comprendre comment analyser avec précision les fichiers YAML dans Go est crucial pour diverses applications. En utilisant des structures Go bien définies, on peut interagir efficacement avec les données YAML.
Énoncé du problème
Dans votre requête, vous avez décrit une incapacité à analyser le fichier YAML suivant en utilisant Go :
--- firewall_network_rules: rule1: src: blablabla-host dst: blabla-hostname ...
De plus, vous avez tenté d'utiliser le Go suivant code :
type Config struct { Firewall_network_rules map[string][]string } ... err = yaml.Unmarshal(yamlFile, &config)
Cependant, cette approche a entraîné une erreur, potentiellement due au manque de structures correspondantes pour les paires clé-valeur src et dst.
Solution
Lorsque le fichier YAML est constitué de listes, l'approche suivante sera suffisent :
--- firewall_network_rules: rule1: - value1 - value2 ...
Cependant, pour les structures YAML plus complexes, telles que l'exemple service.yaml que vous avez fourni :
apiVersion: v1 kind: Service ...
Vous devrez définir des structures Go personnalisées pour correspondre aux structure du YAML. Par exemple :
type Service struct { APIVersion string `yaml:"apiVersion"` Kind string `yaml:"kind"` Metadata struct { Name string `yaml:"name"` Namespace string `yaml:"namespace"` Labels struct { RouterDeisIoRoutable string `yaml:"router.deis.io/routable"` } `yaml:"labels"` Annotations struct { RouterDeisIoDomains string `yaml:"router.deis.io/domains"` } `yaml:"annotations"` } `yaml:"metadata"` Spec struct { Type string `yaml:"type"` Selector struct { App string `yaml:"app"` } `yaml:"selector"` Ports []struct { Name string `yaml:"name"` Port int `yaml:"port"` TargetPort int `yaml:"targetPort"` NodePort int `yaml:"nodePort,omitempty"` } `yaml:"ports"` } `yaml:"spec"` }
Une fois les structures Go définies, vous pouvez utiliser la fonction yaml.Unmarshal() pour analyser les données YAML dans ces structures. Par exemple :
var service Service err = yaml.Unmarshal(yourFile, &service)
En suivant ces techniques, vous pouvez analyser efficacement les fichiers YAML et utiliser les données dans vos applications Go. N'oubliez pas d'adapter vos structures Go pour qu'elles correspondent à la structure spécifique de vos fichiers YAML.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!