package utils import ( "encoding/json" "time" "video_course/errors" ) func JSONToMap(str string) (map[string]interface{}, error) { var tempMap map[string]interface{} err := json.Unmarshal([]byte(str), &tempMap) if err != nil { err = errors.ErrJsonToMap return tempMap, err } return tempMap, nil } func MapToInt32(v interface{}, key string) (i int) { f, ok := v.(map[string]interface{})[key].(float64) if !ok { println(errors.NewServiceErr(errors.JsonToMaptErr, "float64转int32失败,字段名:"+key)) //panic(errors.NewServiceErr(errors.FloatToInt16Err, "float64转int64失败,字段名:"+key)) } i = int(f) return } func MapToInt16(v interface{}, key string) (i int16) { f, ok := v.(map[string]interface{})[key].(float64) if !ok { println(errors.NewServiceErr(errors.JsonToMaptErr, "float64转int16失败,字段名:"+key)) //panic(errors.NewServiceErr(errors.FloatToInt16Err, "float64转int64失败,字段名:"+key)) } i = int16(f) return } func MapToInt64(v interface{}, key string) (i int64) { f, ok := v.(map[string]interface{})[key].(float64) if !ok { println(errors.NewServiceErr(errors.JsonToMaptErr, "无法转成int64,字段名"+key)) } i = int64(f) return } func MapToString(v interface{}, key string) (str string) { f, ok := v.(map[string]interface{})[key].(string) if !ok { println(errors.NewServiceErr(errors.JsonToMaptErr, "无法找到这个key值"+key)) } str = f return } func MapToTime(v interface{}, key string) (t time.Time) { f, ok := v.(map[string]interface{})[key].(string) if !ok { println(errors.NewServiceErr(errors.JsonToMaptErr, "无法找到这个key值"+key)) } t, _ = time.Parse(time.RFC3339, f) return }