Go: разбор вариативного YAML
Я хочу разобрать карту, которая может содержать разные значения, как я могу сделать это в Go с yaml.v2
?
В настоящее время у меня есть следующее описание узла:
package executors
type OptionMap map[string][]string
type Step struct {
Exec string
Pwd string
Opts OptionMap
}
Пример YAML выглядит следующим образом:
steps:
- exec: maven
pwd: /code
opts:
goals:
- clean
- install
mvn_home: /maven
Очевидно, что узел будет отменен, если только goals
, но нет mvn_home
представит там. Есть ли способ написать единственное описание для такого узла?
Если нет, есть ли способ прочитать некоторую часть YAML (под некоторым ключом) в виде простой строки или, что лучше, такой вид карты, как map[string]OBJECT
и разобрать что OBJECT
по отдельности?
1 ответ
Решение
Попробуйте использовать map[string]interface{}
демаршал С interface{}
Вы можете разархивировать его позже, когда потребуется.