go get keys and values of struct
package main
import (
"fmt"
"reflect"
)
type Data struct {
ID int
Name string
}
func main() {
var (
columns []string
values []interface{}
)
data := Data{ID: 1, Name: "bdg"}
v := reflect.ValueOf(data)
typeData := v.Type()
for i := 0; i < v.NumField(); i++ {
columns = append(columns, typeData.Field(i).Name)
values = append(values, v.Field(i).Interface())
}
fmt.Println(columns, values)
//fmt.Println(v.NumField())
}