Начальные ключи в файле yaml являются произвольными, как мне прочитать их в Go? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть следующий файл yaml

arbitratyKey:
    things:
       - value 1
       - value 2

canBeAnything:
    things:
       - value 1
       - value 2

asdasdasd:
    things:
       - value 1
       - value 2

Как выбрать ключ для этого, когда я не могу знать, каким будет корневой ключ?

Я использую следующеебиблиотека https://godoc.org/gopkg.in/yaml.v2#Unmarshal

Очевидно, что следующий код не работает, но как мне получить доступ к клавише canBeAnything без указания типа раньше?

type T struct{}

t := T{}
yaml.Unmarshal([]byte(data), &t)
fmt.Println(t.canBeAnything)

1 Ответ

0 голосов
/ 17 декабря 2018

В обычных случаях, если вы анализируете определенный файл, вы знаете, как он выглядит перед его анализом.Поэтому, если вы знаете, как выглядит файл, рассмотрите Unmarshal экземпляр структуры, которая определяет форму файла.

Если вы не знаете схему и вам нужно работать динамически, Unmarshal в map[string]interface{}

t := make(map[string]interface{})
yaml.Unmarshal([]byte(data), &t)
fmt.Println(t["canBeAnything"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...