go Lang Load kann die Yaml-Datei nicht verarbeiten
Feb 09, 2024 pm 04:30 PMDer 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.
Frageninhalt
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.
Workaround
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie Reflection, um auf private Felder und Methoden in Golang zuzugreifen

Tipps zum dynamischen Erstellen neuer Funktionen in Golang-Funktionen

Der Unterschied zwischen Leistungstests und Unit-Tests in der Go-Sprache

Auf welche Fallstricke sollten wir beim Entwurf verteilter Systeme mit Golang-Technologie achten?

Golang-Technologiebibliotheken und Tools für maschinelles Lernen

Die Entwicklung der Benennungskonvention für Golang-Funktionen

Die Rolle der Golang-Technologie in der mobilen IoT-Entwicklung

Können Golang-Variablenparameter für Funktionsrückgabewerte verwendet werden?
