package main
import (
"reflect"
"fmt"
"encoding/json"
)
type Adult struct {
ID string `qson:"Name"`
Occupation string
Handsome bool
name bool
}
func testFunc(a interface{}) {
// 获取 i 的反射变量 Value
v := reflect.ValueOf(a).Elem()
// 判断接口变量的类型
// if v.Kind() != reflect.Ptr {
// return
// }
fmt.Println(v.Type().PkgPath())
name, _ := v.Type().FieldByName("name")
fmt.Printf("name PkgPath: %v\n", name.PkgPath)
// st := v.Type()
// for i := 0; i < st.NumField(); i++ {
// f := st.Field(i)
// fmt.Printf("PkgPath: %v\n", f.PkgPath)
// }
}
func main() {
aa := Adult{
ID: "Steve", Occupation: "Clerk", Handsome: true,
}
testFunc(&aa)
mJson, _ := json.Marshal(aa)
fmt.Println(string(mJson))
}