diff --git a/maputil/map.go b/maputil/map.go index 8df9be4..465417c 100644 --- a/maputil/map.go +++ b/maputil/map.go @@ -8,6 +8,9 @@ import ( "fmt" "reflect" "sort" + "strings" + + "golang.org/x/exp/constraints" "golang.org/x/exp/constraints" @@ -378,8 +381,7 @@ func getFieldNameByJsonTag(structObj any, jsonTag string) string { for i := 0; i < s.NumField(); i++ { field := s.Field(i) tag := field.Tag - name := tag.Get("json") - + name, _, _ := strings.Cut(tag.Get("json"), ",") if name == jsonTag { return field.Name } diff --git a/maputil/map_test.go b/maputil/map_test.go index 7d01611..9737e36 100644 --- a/maputil/map_test.go +++ b/maputil/map_test.go @@ -485,7 +485,7 @@ func TestMapToStruct(t *testing.T) { Name string `json:"name"` Age int `json:"age"` Phone string `json:"phone"` - Addr *Address `json:"address"` + Addr *Address `json:"address,omitempty"` } Address struct {