diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..2993646 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module git.whblueocean.cn/blueocean-go/utils + +go 1.25.3 diff --git a/tools.go b/tools.go new file mode 100644 index 0000000..517b43c --- /dev/null +++ b/tools.go @@ -0,0 +1,22 @@ +package utils + +import "reflect" + +func GetColumnsFromJsonTag(v interface{}) map[string]bool { + columns := make(map[string]bool) + t := reflect.TypeOf(v) + + if t.Kind() == reflect.Ptr { + t = t.Elem() + } + + for i := 0; i < t.NumField(); i++ { + field := t.Field(i) + jsonTag := field.Tag.Get("json") + if jsonTag == "" || jsonTag == "-" { + continue + } + columns[jsonTag] = true + } + return columns +}