golang 中将 提取struct的tag
在Go语言中,可以使用反射来提取struct的tag。反射是Go语言的一种强大的机制,可以在运行时动态地获取类型的信息。
下面是一个简单的例子,演示如何提取struct的tag:
package main
import (
"fmt"
"reflect"
)
type User struct {
Name string `json:"name" xml:"user_name"`
Age int `json:"age" xml:"user_age"`
}
func main() {
user := User{Name: "John", Age: 30}
t := reflect.TypeOf(user)
for i := 0; i < t.NumField(); i++ {
field := t.Field(i)
tag := field.Tag.Get("json")
fmt.Println(tag)
}
}
在上面的例子中,我们定义了一个名为User的结构体,该结构体有两个字段Name和Age,每个字段都有一个tag,用于指定在序列化为json格式时的字段名。在main函数中,我们使用reflect.TypeOf(user)获取user变量的类型信息。然后,我们遍历结构体的每个字段,并使用field.Tag.Get("json")方法来获取json标签的值,并打印出来。
运行上面的代码,输出如下:
name
age
可以看到,我们成功地提取出了struct的tag。在实际应用中,你可以根据需要使用反射来获取更多的类型信息,然后根据tag的值来进行相应的处理
原文地址: https://www.cveoy.top/t/topic/iE3f 著作权归作者所有。请勿转载和采集!