23 lines
397 B
Go
23 lines
397 B
Go
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
|
|
}
|