48 lines
938 B
Go
48 lines
938 B
Go
package utils
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strconv"
|
|
)
|
|
|
|
// MapUtils Map工具类
|
|
type MapUtils struct{}
|
|
|
|
var Map = &MapUtils{}
|
|
|
|
// ConvertToObject Map转对象
|
|
func (m *MapUtils) ConvertToObject(data map[string]interface{}, obj interface{}) error {
|
|
jsonData, err := json.Marshal(data)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return json.Unmarshal(jsonData, obj)
|
|
}
|
|
|
|
// GetString 从map获取字符串
|
|
func (m *MapUtils) GetString(data map[string]interface{}, key string) string {
|
|
if val, ok := data[key]; ok && val != nil {
|
|
return val.(string)
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// GetInt64 从map获取int64
|
|
func (m *MapUtils) GetInt64(data map[string]interface{}, key string) int64 {
|
|
if val, ok := data[key]; ok && val != nil {
|
|
switch v := val.(type) {
|
|
case string:
|
|
if i, err := strconv.ParseInt(v, 10, 64); err == nil {
|
|
return i
|
|
}
|
|
case float64:
|
|
return int64(v)
|
|
case int:
|
|
return int64(v)
|
|
case int64:
|
|
return v
|
|
}
|
|
}
|
|
return 0
|
|
}
|