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{} Вы можете разархивировать его позже, когда потребуется.

Другие вопросы по тегам