L oop через YAML Entitys не возвращает содержимое - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь немного поработать с 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.

Кто-нибудь может мне помочь?

Большое спасибо

...