Как проверить / прочитать yaml, если я не знаю ожидаемую схему в (структура), используя go? - PullRequest
0 голосов
/ 15 января 2020

Я могу прочитать это, используя эту библиотеку "github.com/smallfish/simpleyaml"

yml, err := ioutil.ReadFile("pvz-qa.yml")

    b := err == nil
    if b {
        fmt.Print("All good")

    }

    fmt.Print(yml)


    parsedYml,error := simpleyaml.NewYaml(yml)

Могу ли я сделать то же самое, используя gopkg.in/yaml.v2?

1 Ответ

1 голос
/ 15 января 2020

Вы можете разархивировать интерфейс:

var yml interface{}
data,_:=ioutil.ReadAll(file)
err:=yaml.Unmarshal(data, &yml)

Как только вы успешно разархивируете, yml - это map[interface{}]interface{}, и вы можете пройти по дереву, используя утверждения типа. Например:

value:=yml["key"]

даст вам значение для key, и вы можете проверить, является ли оно строкой, или []interface{}, или map[interface{}]interface{}, и рекурсивно спуститься.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...