diff --git a/validate.go b/validate.go index b507034..4649e16 100644 --- a/validate.go +++ b/validate.go @@ -15,7 +15,6 @@ import ( dynamicStructGenerate "git.zhangdeman.cn/zhangdeman/dynamic-struct" "git.zhangdeman.cn/zhangdeman/json_filter/gjson_hack" "git.zhangdeman.cn/zhangdeman/serialize" - "git.zhangdeman.cn/zhangdeman/wrapper" "github.com/go-playground/validator/v10" "github.com/tidwall/gjson" "github.com/tidwall/sjson" @@ -75,10 +74,9 @@ func (h *handle) Run() ([]byte, error) { // 没出现异常, 但是value为nil, 视作参数不存在处理 continue } - fieldName := wrapper.String(field.JsonTag).SnakeCaseToCamel() // TODO : 支持嵌套结构体 fieldTag := h.generateTag(field) - h.dynamicStruct.AddField(fieldName, "", sourceValue, fieldTag, false) + h.dynamicStruct.AddField(field.JsonTag, "", sourceValue, fieldTag, false) } val := h.dynamicStruct.Build().New() if err := serialize.JSON.UnmarshalWithNumber([]byte(h.formatVal), &val); nil != err { diff --git a/validate_test.go b/validate_test.go index b4a8156..708e070 100644 --- a/validate_test.go +++ b/validate_test.go @@ -16,11 +16,19 @@ import ( // TestRun_Simple_Data 无嵌套、无复杂数据类型的处理 func TestRun_Simple_Data(t *testing.T) { - testMap := map[string]any{ - "age": 18, + userInfo := map[string]any{ + "age": 1800, "height": 179.5, "name": "baicha", } + companyInfo := map[string]any{ + "address": "beijing", + } + + testMap := map[string]any{ + "user": userInfo, + "company": companyInfo, + } sourceByteData, _ := json.Marshal(testMap) fieldList := []StructField{ { @@ -34,15 +42,15 @@ func TestRun_Simple_Data(t *testing.T) { }, { Tag: "max", - Args: []string{"20"}, + Args: []string{"2000"}, }, }, DefaultValue: "", - SourcePath: "age", + SourcePath: "user.age", TargetPath: "user_age", - Errmsg: "年龄必须在[1,20]之间", + Errmsg: "年龄必须在[1,2000]之间", }, } - _, err := Run(sourceByteData, fieldList) - fmt.Println(err) + res, err := Run(sourceByteData, fieldList) + fmt.Println(err, string(res)) }