升级类型枚举
This commit is contained in:
66
filter.go
66
filter.go
@ -10,6 +10,7 @@ package filter
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"git.zhangdeman.cn/zhangdeman/consts"
|
||||
"git.zhangdeman.cn/zhangdeman/wrapper"
|
||||
"strings"
|
||||
|
||||
@ -184,48 +185,33 @@ func (f *filter) getValue(dataType string, sourceValue gjson.Result, defaultValu
|
||||
strVal := wrapper.String(sourceValueStr)
|
||||
|
||||
switch dataType {
|
||||
case wrapper.DataTypeInt8:
|
||||
return strVal.ToInt8().Value, strVal.ToInt8().Err
|
||||
case wrapper.DataTypeInt16:
|
||||
return strVal.ToInt16().Value, strVal.ToInt16().Err
|
||||
case wrapper.DataTypeInt32:
|
||||
return strVal.ToInt32().Value, strVal.ToInt32().Err
|
||||
case wrapper.DataTypeInt64:
|
||||
return strVal.ToInt64().Value, strVal.ToInt64().Err
|
||||
case wrapper.DataTypeInt:
|
||||
return strVal.ToInt().Value, strVal.ToInt().Err
|
||||
case wrapper.DataTypeUint8:
|
||||
return strVal.ToUint8().Value, strVal.ToUint8().Err
|
||||
case wrapper.DataTypeUint16:
|
||||
return strVal.ToUint16().Value, strVal.ToUint16().Err
|
||||
case wrapper.DataTypeUint32:
|
||||
return strVal.ToUint32().Value, strVal.ToUint32().Err
|
||||
case wrapper.DataTypeUint64:
|
||||
return strVal.ToUint64().Value, strVal.ToUint64().Err
|
||||
case wrapper.DataTypeUint:
|
||||
return strVal.ToUint().Value, strVal.ToUint().Err
|
||||
case wrapper.DataTypeBool:
|
||||
return strVal.ToBool().Value, strVal.ToBool().Err
|
||||
case wrapper.DataTypeFloat32:
|
||||
return strVal.ToFloat64().Value, strVal.ToFloat64().Err
|
||||
case wrapper.DataTypeFloat64:
|
||||
fallthrough
|
||||
case wrapper.DataTypeFloat:
|
||||
fallthrough
|
||||
case wrapper.DataTypeDouble:
|
||||
return strVal.ToFloat64().Value, strVal.ToFloat64().Err
|
||||
case wrapper.DataTypeNumber:
|
||||
return strVal.ToNumber().Value, strVal.ToNumber().Err
|
||||
case wrapper.DataTypeString:
|
||||
return sourceValueStr, nil
|
||||
case wrapper.DataTypeAny:
|
||||
return sourceValue.Value(), nil
|
||||
case wrapper.DataTypeAnySlice:
|
||||
case consts.DataTypeInt:
|
||||
intVal := strVal.ToInt()
|
||||
return intVal.Value, intVal.Err
|
||||
case consts.DataTypeUint:
|
||||
uintVal := strVal.ToUint64()
|
||||
return uintVal.Value, uintVal.Err
|
||||
case consts.DataTypeBool:
|
||||
boolVal := strVal.ToBool()
|
||||
return boolVal.Value, boolVal.Err
|
||||
case consts.DataTypeFloat:
|
||||
floatVal := strVal.ToFloat64()
|
||||
return floatVal.Value, floatVal.Err
|
||||
case consts.DataTypeString:
|
||||
return strVal.Value(), nil
|
||||
case consts.DataTypeAny:
|
||||
if sourceValue.Exists() {
|
||||
return sourceValue.Value(), nil
|
||||
}
|
||||
return defaultValue, nil
|
||||
case consts.DataTypeSliceAny:
|
||||
// 任意类型的list
|
||||
return strVal.ToAnySlice().Value, strVal.ToAnySlice().Err
|
||||
case wrapper.DataTypeObject:
|
||||
sliceVal := strVal.ToAnySlice()
|
||||
return sliceVal.Value, sliceVal.Err
|
||||
case consts.DataTypeMapStrAny:
|
||||
// object
|
||||
return strVal.ToObject().Value, strVal.ToObject().Err
|
||||
objectVal := strVal.ToObject()
|
||||
return objectVal.Value, objectVal.Err
|
||||
default:
|
||||
return nil, errors.New(dataType + " is not support!")
|
||||
}
|
||||
|
Reference in New Issue
Block a user