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  }