增加对[]interface的处理
This commit is contained in:
		
							
								
								
									
										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) { | ||||
| 	sourceValueStr := defaultValue | ||||
| 	if sourceValue.Exists() { | ||||
| 		sourceValueStr = sourceValue.String() | ||||
| 		str := sourceValue.String() | ||||
| 		if len(str) > 0 { | ||||
| 			sourceValueStr = str | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	switch dataType { | ||||
| @ -236,6 +239,15 @@ func (f *filter) getValue(dataType string, sourceValue gjson.Result, defaultValu | ||||
| 		return sourceValueStr, nil | ||||
| 	case DataTypeAny: | ||||
| 		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: | ||||
| 		return nil, errors.New(dataType + " is not support!") | ||||
| 	} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user