Go--如何获得struct结构体内字段的json值 tag获取

定义了一个结构体,如何获得某个字段的tag 标签值?
在这里插入图片描述使用reflect包即可达到想要的效果,代码如下:

package main

import (
	"fmt"
	"reflect"
	"time"
)

type UserInfo struct {
	ID           int         `json:"id" redis:"id_redis"`
	Name         string      `json:"name" redis:"name_redis"`
	Created      time.Time   `json:"created" redis:"created_redis"`
}
func main() {
	var user = &UserInfo{
		ID : 1,
		Name : "Jack",
	}
	types := reflect.TypeOf(user)
	field1 := types.Elem().Field(0)
	field2 := types.Elem().Field(1)
	tagName1 := field1.Tag.Get("json")      //  获得字段 ID 的json值
	tagName2 := field2.Tag.Get("redis")     //  获得字段 Name 的redis值
	fmt.Println(tagName1, tagName2)
}

// 打印结果:
id name_redis

参考文章:https://studygolang.com/articles/11988?fr=sidebar
reflect包文档:https://studygolang.com/pkgdoc

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值