Maison >développement back-end >Golang >Go Lang Load ne peut pas traiter le fichier yaml
L'éditeur PHP Zimo a découvert que de nombreux développeurs du langage Go rencontraient des problèmes lors du traitement des fichiers yaml. Bien que le langage Go fournisse la fonction de chargement pour charger les fichiers yaml, cette fonction ne peut pas gérer correctement l'analyse des fichiers yaml. Ce problème a amené de nombreux développeurs à rencontrer des difficultés lors du traitement des fichiers YAML. Alors, comment résoudre ce problème ? Dans cet article, nous présenterons quelques solutions pour aider les développeurs à gérer les fichiers YAML en douceur.
J'essaie de lire un fichier yaml et de le stocker dans une variable, mais pour une raison quelconque, l'objet tableau dans le fichier yaml ne peut pas désorganiser le fichier. Il affiche des données vides.
Ce qui suit est le contenu de mon fichier yaml
--- version: "1.2" bunits: - name: buname bugroupid: asd bustgroupid: asd - name: buname2 bugroupid: asd2 bustgroupid: asd2
Voici le code utilisé
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) }
Le code lit la partie version, mais le tableau bunits est vide. Veuillez faire des suggestions.
Décorez votre structure avec une balise json
- vous en aurez peut-être besoin ou non (selon que vous exportez/importez ultérieurement ces données au format json).
Mais le problème que vous rencontrez est la yaml
导入 - 所以你需要用 yaml
标签来装饰你的 struct
définition.
Pour prendre en charge le marshalling/unmarshalling json
和 yaml
et yaml
, mettez simplement à jour vos balises comme suit :
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"` }
Ou si vous n'avez pas besoin d'encodage/décodage json, supprimez simplement la balise json
.
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!