Я пытаюсь немного поработать с Go и YAML, и я новичок в этой области. В моем файле YAML с именем users.yaml вы можете найти следующее содержимое:
- fullName: Mx Mustermann
givenName: Max
familyName: Mustermann
primaryEmail: max.mustermann@test.de
validUntil: 20 Apr 20 10:00 UTC
- fullName: Berta Beispiel
givenName: Berta
familyName: Beispiel
primaryEmail: berta.beispiel@test.de
validUntil: 20 Apr 20 10:00 UTC
Я хочу обработать содержимое этого файла YAML сейчас. Цель состоит в том, чтобы я мог вывести атрибут для каждого определенного пользователя в yaml в al oop. До сих пор я запрограммировал следующее:
package main
import (
"errors"
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
)
type users struct{
fullName string
givenName string
familyName string
primaryEmail string
validUntil string
}
func readUsersFile(filePath string)([]*users,error){
var us []*users
yamlFile, err := ioutil.ReadFile(filePath)
if err != nil{
return us,errors.New("Unable to read yaml file ")
}
if err = yaml.Unmarshal(yamlFile, &us); err !=nil{
return us, fmt.Errorf("can not parse your yaml file %s", err)
}
return us, nil
}
func main(){
entities, err := readUsersFile("users/users.yaml")
if err != nil{
fmt.Errorf("Error return value readUsersFile ")
}
for _, entity := range entities {
fmt.Println("PrimaryEmail:", entity.primaryEmail)
}
}
l oop также работает логически. Например, если я удаляю пользователя из users.yaml, он снова вернет только строку «PrimaryEmail». Но содержание отсутствует. Итак, entity.primaryEmail.
Кто-нибудь может мне помочь?
Большое спасибо