6.Elem反射获取tag
最后更新于:2022-04-02 04:45:18
Elem反射获取tag
~~~
package main
import (
"fmt"
"reflect"
)
type Student struct {
Name string `json:"stu_name"`
Age int
Score float32
}
func TestStruct(a interface{}) {
typ := reflect.TypeOf(a)
tag := typ.Elem().Field(0).Tag.Get("json")
fmt.Printf("Tag:%s\n", tag)
}
func main() {
var a Student = Student{
Name: "stu01",
Age: 18,
Score: 92.8,
}
TestStruct(&a)
}
~~~
输出结果:
~~~
Tag:stu_name
~~~
获取 tag(一)
~~~
package main
import (
"fmt"
"reflect"
)
func main() {
type User struct {
Name string "user name"
Passwd string `user passsword`
}
u := &User{
Name: "Murphy",
Passwd: "123456",
}
s := reflect.TypeOf(u).Elem()
for i := 0; i < s.NumField(); i++ {
fmt.Println(s.Field(i).Tag)
}
}
~~~
获取 tag(二)
~~~
package main
import (
"fmt"
"reflect"
)
func main() {
type User struct {
Name string `json:"user_name" name:"user name"`
}
u := User{
Name: "Murphy",
}
f := reflect.TypeOf(u).Field(0)
fmt.Println(f.Tag.Get("json"))
fmt.Println(f.Tag.Get("name"))
}
~~~
';