github.com/qxnw/lib4go@v0.0.0-20180426074627-c80c7e84b925/types/map.go (about) 1 package types 2 3 import ( 4 "encoding/json" 5 "fmt" 6 ) 7 8 func GetIMap(m map[string]string) map[string]interface{} { 9 n := make(map[string]interface{}) 10 for k, v := range m { 11 n[k] = v 12 } 13 return n 14 } 15 func GetMapValue(key string, m map[string]string, def ...string) string { 16 if v, ok := m[key]; ok { 17 return v 18 } 19 if len(def) > 0 { 20 return def[0] 21 } 22 return "" 23 } 24 func ToStringMap(input map[string]interface{}) (map[string]string, error) { 25 rmap := make(map[string]string) 26 for k, v := range input { 27 if s, ok := v.(string); ok { 28 rmap[k] = s 29 } else if s, ok := v.(interface{}); ok { 30 buff, err := json.Marshal(s) 31 if err != nil { 32 return nil, err 33 } 34 rmap[k] = string(buff) 35 } else { 36 return nil, fmt.Errorf("不支持的数据类型:%+v", v) 37 } 38 } 39 return rmap, nil 40 41 }