增加[][]any处理

This commit is contained in:
2024-05-01 22:28:01 +08:00
parent 9c7886dec3
commit 93117e13ea
3 changed files with 15 additions and 2 deletions

13
run.go
View File

@ -180,6 +180,8 @@ func handleData(inputVal any, rule *define.FieldRule) (any, error) {
return handleSliceFloat(inputVal, rule)
case consts.DataTypeSliceBool, consts.DataTypeSliceBoolWithChar: // bool数组
return handleSliceBool(inputVal, rule)
case consts.DataTypeSliceSlice:
return handleSliceSlice(inputVal, rule)
case consts.DataTypeSliceMapAnyAny: // map 列表
return handleSliceMapAny(inputVal, rule)
case consts.DataTypeSliceMapStringAny:
@ -584,7 +586,16 @@ func handleSliceSlice(inputValue interface{}, rule *define.FieldRule) ([][]any,
if anySlice, err = handleSlice(inputValue, rule); nil != err {
return nil, err
}
return nil, nil
sliceSlice := make([][]any, 0)
for _, item := range anySlice {
byteData := serialize.JSON.MarshalForByte(item)
res := make([]any, 0)
if err = serialize.JSON.UnmarshalWithNumber(byteData, &res); nil != err {
return nil, fmt.Errorf("%v : data type is expect [][]any, but convert fail : %v", rule.Path, err.Error())
}
sliceSlice = append(sliceSlice, res)
}
return sliceSlice, nil
}
// handleSliceMapAny ...