Menghuraikan Fail YAML dengan Berkesan dalam Go
Memahami cara menghuraikan fail YAML dalam Go dengan tepat adalah penting untuk pelbagai aplikasi. Dengan menggunakan struktur Go yang jelas, seseorang boleh berinteraksi dengan data YAML dengan cekap.
Pernyataan Masalah
Dalam pertanyaan anda, anda menerangkan ketidakupayaan untuk menghuraikan fail YAML berikut menggunakan Go:
--- firewall_network_rules: rule1: src: blablabla-host dst: blabla-hostname ...
Selain itu, anda cuba menggunakan kod Go berikut:
type Config struct { Firewall_network_rules map[string][]string } ... err = yaml.Unmarshal(yamlFile, &config)
Walau bagaimanapun, pendekatan ini mengakibatkan ralat, mungkin disebabkan oleh kekurangan struktur yang sepadan untuk pasangan nilai kunci src dan dst.
Penyelesaian
Apabila fail YAML terdiri daripada senarai, pendekatan berikut akan mencukupi:
--- firewall_network_rules: rule1: - value1 - value2 ...
Walau bagaimanapun, untuk struktur YAML yang lebih kompleks, seperti perkhidmatan sampel.yaml yang anda berikan:
apiVersion: v1 kind: Service ...
Anda perlu menentukan struktur Go tersuai untuk memadankan struktur bersarang YAML. Contohnya:
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"` }
Setelah struktur Go ditakrifkan, anda boleh menggunakan fungsi yaml.Unmarshal() untuk menghuraikan data YAML ke dalam struktur ini. Contohnya:
var service Service err = yaml.Unmarshal(yourFile, &service)
Dengan mengikuti teknik ini, anda boleh menghuraikan fail YAML dengan berkesan dan menggunakan data dalam aplikasi Go anda. Ingat untuk menyesuaikan struktur Go anda agar sepadan dengan struktur khusus fail YAML anda.
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Fail YAML Kompleks dengan Berkesan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!