Heim > Artikel > Backend-Entwicklung > go Lang Load kann die Yaml-Datei nicht verarbeiten
Der PHP-Editor Zimo hat festgestellt, dass viele Go-Sprachentwickler bei der Verarbeitung von Yaml-Dateien auf Probleme gestoßen sind. Obwohl die Go-Sprache die Ladefunktion zum Laden von Yaml-Dateien bereitstellt, kann diese Funktion das Parsen von Yaml-Dateien nicht korrekt verarbeiten. Dieses Problem hat bei vielen Entwicklern zu Schwierigkeiten bei der Verarbeitung von YAML-Dateien geführt. Wie kann man dieses Problem lösen? In diesem Artikel stellen wir einige Lösungen vor, die Entwicklern helfen, reibungslos mit YAML-Dateien umzugehen.
Ich versuche, eine Yaml-Datei zu lesen und in einer Variablen zu speichern, aber aus irgendeinem Grund kann das Array-Objekt in der Yaml-Datei die Datei nicht entmarshalieren. Es werden leere Daten angezeigt.
Das Folgende ist der Inhalt meiner Yaml-Datei
--- version: "1.2" bunits: - name: buname bugroupid: asd bustgroupid: asd - name: buname2 bugroupid: asd2 bustgroupid: asd2
Hier ist der verwendete Code
type SResponse struct { Version string `json:"version"` BUnits []BUnit `json:"bUnits"` } type BUnit struct { Name string `json:"name"` BuUnitGroupID string `json:"buGroupID"` BuUnitStGroupID string `json:"buStaticGroupID"` } func main() { _printf := fmt.Printf _printf("Start") var sListResponse SResponse source, err2 := ioutil.ReadFile("squads2.yml") if err2 != nil { _printf("Couldn't read yaml file.") } err2 = yaml.Unmarshal(source, &sListResponse) if err2 != nil { _printf("Error") } _printf("Output: %s\n", sListResponse) }
Der Code liest den Versionsteil, aber das bunits-Array ist leer. Bitte machen Sie Vorschläge.
Dekorieren Sie Ihre Struktur mit einem json
-Tag – Sie benötigen dies möglicherweise oder auch nicht (abhängig davon, ob Sie diese Daten später im JSON-Format exportieren/importieren).
Aber das Problem, das Sie haben, ist die yaml
导入 - 所以你需要用 yaml
标签来装饰你的 struct
-Definition.
Um json
和 yaml
und yaml
Marshalling/Unmarshaling zu unterstützen, aktualisieren Sie einfach Ihre Tags wie folgt:
type SResponse struct { Version string `json:"version" yaml:"version"` BUnits []BUnit `json:"bUnits" yaml:"bUnits"` } type BUnit struct { Name string `json:"name" yaml:"name"` BuUnitGroupID string `json:"buGroupID" yaml:"buGroupID"` BuUnitStGroupID string `json:"buStaticGroupID" yaml:"buStaticGroupID"` }
Oder wenn Sie keine JSON-Kodierung/Dekodierung benötigen, entfernen Sie einfach das json
-Tag.
Das obige ist der detaillierte Inhalt vongo Lang Load kann die Yaml-Datei nicht verarbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!