Golang反射:从结构字段获取标签

Jameo:

是否可以在结构的某个字段上进行反射,并获得对其标记值的引用?

例如:

type User struct {
    name    string `json:name-field`
    age     int
}
...
user := &User{"John Doe The Fourth", 20}
getStructTag(user.name)
...
func getStructTag(i interface{}) string{
   //get tag from field

}

从我所看到的,执行此操作的通常方法是覆盖typ.NumField(),然后调用field.Tag.Get(“ tagname”)。但是,在我的用例中,最好不必传递整个结构。有什么想法?

djd:

您不需要传递整个结构,但是传递字段之一的值是不够的。

在您的示例user.name字段中,只是string-反射包将无法将其与原始结构相关联。

相反,您需要传递reflect.StructField给定字段的:

field, ok := reflect.TypeOf(user).Elem().FieldByName("name")
…
tag = string(field.Tag)

注意:我们使用Elem上面的因为user是指向结构的指针。

您可以在此处举一个例子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

golang反射,获取指向结构字段值的指针

来自分类Dev

反射获取字段标签

来自分类Dev

Golang使用反射设置结构字段

来自分类Dev

使用反射获取结构字段的名称

来自分类Dev

使用反射在Golang中打印结构指针字段类型

来自分类Dev

Golang反射:无法设置包装结构的界面字段

来自分类Dev

Golang中逗号分隔字段的结构标签

来自分类Dev

允许反射以从Go中的结构获取未导出的字段

来自分类Dev

使用反射比较结构字段

来自分类Dev

反射匿名结构字段指针

来自分类Dev

使用反射更新结构字段

来自分类Dev

使用反射访问结构中的结构字段

来自分类Dev

Golang使用反射一对一地变异结构的字段

来自分类Dev

使用反射在结构内获取结构

来自分类Dev

如何在golang中获取结构字段类型?

来自分类Dev

Golang-通过接口获取指向结构字段的指针

来自分类Dev

Golang通过JSON标记获取结构的字段名称

来自分类Java

获取使用反射字段值

来自分类Dev

我可以获取一个字段是否已在golang中分配了反射

来自分类Dev

在golang中遍历结构而不反射

来自分类Dev

GO Golang:匿名结构和反射组合

来自分类Dev

如何使用反射更改字段的结构片段?

来自分类Dev

结构字段的标签如何使用?

来自分类Dev

在导入的结构上覆盖结构字段标签

来自分类Dev

golang从文件填充结构字段

来自分类Dev

Golang未设置结构字段

来自分类Dev

golang获取反射类型的类型

来自分类Dev

C#反射-获取未知字段的值

来自分类Java

反射通用获取字段值