优化自动生成json #3
14
filter.go
14
filter.go
@ -176,7 +176,10 @@ func (f *filter) Parse(receiver interface{}) error {
|
|||||||
func (f *filter) getValue(dataType string, sourceValue gjson.Result, defaultValue string) (interface{}, error) {
|
func (f *filter) getValue(dataType string, sourceValue gjson.Result, defaultValue string) (interface{}, error) {
|
||||||
sourceValueStr := defaultValue
|
sourceValueStr := defaultValue
|
||||||
if sourceValue.Exists() {
|
if sourceValue.Exists() {
|
||||||
sourceValueStr = sourceValue.String()
|
str := sourceValue.String()
|
||||||
|
if len(str) > 0 {
|
||||||
|
sourceValueStr = str
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch dataType {
|
switch dataType {
|
||||||
@ -236,6 +239,15 @@ func (f *filter) getValue(dataType string, sourceValue gjson.Result, defaultValu
|
|||||||
return sourceValueStr, nil
|
return sourceValueStr, nil
|
||||||
case DataTypeAny:
|
case DataTypeAny:
|
||||||
return sourceValue.Value(), nil
|
return sourceValue.Value(), nil
|
||||||
|
case DataTypeAnySlice:
|
||||||
|
// 任意类型的list
|
||||||
|
var (
|
||||||
|
result []interface{}
|
||||||
|
)
|
||||||
|
if err := util.JSON.UnmarshalWithNumber([]byte(sourceValueStr), &result); nil != err {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
default:
|
default:
|
||||||
return nil, errors.New(dataType + " is not support!")
|
return nil, errors.New(dataType + " is not support!")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user