title: More easy way of using Interfaces to map YAML dynamically?
body: <p>I am trying to parse a yaml file dynamically (Therefore no struct).  </p>
  
  <pre><code>package main
  
  import (
      "fmt"
      "gopkg.in/yaml.v2"
      "log"
  )
  
  func main() {   
      var out = `
  a: First!
  f: Second
  b:
    c: 
      f: Third
  `
      m := make(map[interface{}]interface{})
      err := yaml.Unmarshal([]byte(out), &amp;m)
      if err != nil {
          log.Fatal(err)
      }
  
      fmt.Println(m["b"].(map[interface{}]interface{})["c"].(map[interface{}]interface{})["f"])
  }
  </code></pre>
  
  <p>Everytime I have to access a subkey, I am forced to convert map variable in question to (map[interface{}]interface{}). This is causing bit of a hassle for me as I have to iterate through the map.</p>
  
  <p>Is there any easier method for parsing YAML file in Go?</p>