Как обработать элементы массива, указанные в YAML, для связи со структурой в Go? - PullRequest
0 голосов
/ 26 сентября 2019

Я не нашел способа присвоить значения, определенные в массиве в поле файла YAML, полям структуры в Go.Я уже распаковываю весь файл в определенную структуру, но мне хотелось бы углубиться.

Файл YAML является жестко закодированным файлом.

Файл YAML

- id : [apples,bananas]
  fruits: true
  vegetables: false

- id : [apples,onions]
  fruits: true
  vegetables: true

Go структурирует

type Basket struct {
    ID RawID `yaml:"id"`
    Content BasketContent
}

type RawID struct {
       Apples  bool `yaml:"apples"`
       Bananas bool `yaml:"bananas"`
       Onions  bool `yaml:"onions"`
}

type BasketContent struct {
    Fruits     boolean `yaml:"fruits"`
    Vegetables boolean `yaml:"vegetables"`
}

Я ожидаю определить, какие элементы находятся в поле идентификатора, чтобы затем хешировать их в значение.

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете попробовать следующий пакет, содержащий определения yaml для структур

https://github.com/go-yaml/yaml

Сюда входит документация по работе с массивами.

Редактировать1: Включая соответствующий фрагмент кода

var data = `
a: Easy!
b:
  c: 2
  d: [3, 4]
`

// Note: struct fields must be public in order for unmarshal to
// correctly populate the data.
type T struct {
        A string
        B struct {
                RenamedC int   `yaml:"c"`
                D        []int `yaml:",flow"`
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...