| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 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
- }
|