Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save StephanieSunshine/7902af62e21ddebb09ecafc9277190ba to your computer and use it in GitHub Desktop.
Save StephanieSunshine/7902af62e21ddebb09ecafc9277190ba to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
)
func subtraverse(data *interface{}) {
d := (*data).(map[interface{}]interface{})
fmt.Println(d["title"], d["body"])
if d["subs"] != nil {
fmt.Println("Subs!")
s := d["subs"].([]interface{})
for _, e := range(s) {
//fmt.Println(e)
subtraverse(&e)
}
}
}
func traverse(data *map[interface{}]interface{}) {
//fmt.Println((*data)["subs"])
if (*data)["subs"] != nil {
fmt.Println("Found Subs")
s := (*data)["subs"].([]interface{})
//fmt.Println(s)
for _, e := range(s) {
//fmt.Println(e)
subtraverse(&e)
}
}
}
func main() {
data := make(map[interface{}]interface{})
d, err := ioutil.ReadFile("book.yaml")
if err != nil { panic(err) }
err = yaml.Unmarshal(d, &data)
if err != nil { panic(err) }
traverse(&data)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment