package main import ( "reflect" ) func main() { imap := make(map[string]string) var input interface{} input = imap m := reflect.ValueOf(input) if m.Kind() == reflect.Map { res := reflect.MakeMap(m.Type()) keys := m.MapKeys() for _, k := range keys { key := k.Convert(res.Type().Key()) //.Convert(m.Type().Key()) value := m.MapIndex(key) res.SetMapIndex(key, value) } } }