diff --git a/filter/filter_impl/generic_filter.go b/filter/filter_impl/generic_filter.go index f5a03ba37941bd0f27c9e72c59fa62e26174f6f4..7d7a54fd1c48e2e4272e3541474f6449c3912ece 100644 --- a/filter/filter_impl/generic_filter.go +++ b/filter/filter_impl/generic_filter.go @@ -95,13 +95,15 @@ func struct2MapAll(obj interface{}) interface{} { for i := 0; i < t.NumField(); i++ { switch v.Field(i).Kind() { case reflect.Struct: - if v.Field(i).Type().String() == "time.Time" { - setInMap(result, t.Field(i), v.Field(i).Interface()) - break - } fallthrough - case reflect.Slice | reflect.Map: + case reflect.Slice: + fallthrough + case reflect.Map: if v.Field(i).CanInterface() { + if v.Field(i).Type().String() == "time.Time" { + setInMap(result, t.Field(i), v.Field(i).Interface()) + break + } setInMap(result, t.Field(i), struct2MapAll(v.Field(i).Interface())) } break