Вы можете разархивировать интерфейс:
var yml interface{}
data,_:=ioutil.ReadAll(file)
err:=yaml.Unmarshal(data, &yml)
Как только вы успешно разархивируете, yml
- это map[interface{}]interface{}
, и вы можете пройти по дереву, используя утверждения типа. Например:
value:=yml["key"]
даст вам значение для key
, и вы можете проверить, является ли оно строкой, или []interface{}
, или map[interface{}]interface{}
, и рекурсивно спуститься.