m := make(map[interface{}]interface{}) err = goyaml.Unmarshal([]byte(config), &m) if err != nil { panic(err) } //fmt.Printf("--- m:\n%# v\n\n", m) pretty.Printf("--- m:\n%# v\n\n", m) $ go run main.go --- m: map[interface {}]interface {}{ "mail_from": "hoge@fuga.com", "to": []interface {}{ "hoge@fuga.com", }, "var": map[interface {}]interface {}{ "c": int(2), "d": []interface {}{ int(3), int(4), }