Go中JSON解析时tag怎么用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Go中JSON解析时tag怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Go中JSON解析时tag怎么用"文章能帮助大家解决问题。在处
千家信息网最后更新 2026年11月03日Go中JSON解析时tag怎么用
这篇文章主要介绍"Go中JSON解析时tag怎么用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Go中JSON解析时tag怎么用"文章能帮助大家解决问题。
在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有反引号括起来的内容。形如:
type User struct { UserId int `json:"user_id" bson:"user_id"` UserName string `json:"user_name" bson:"user_name"` }struct成员变量标签(Tag)说明
要比较详细的了解这个,要先了解一下golang的基础,在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和其它的系统进行数据交互,例如转成json格式,存储到mongodb啊等等。这个时候如果用属性名来作为键值可能不一定会符合项目要求。
所以呢就多了反引号的内容,在golang中叫标签(Tag),在转换成其它数据格式的时候,会使用其中特定的字段作为键值。例如上例在转成json格式:
u := &User{UserId: 1, UserName: "tony"} j, _ := json.Marshal(u) fmt.Println(string(j))// 输出内容:// {"user_id":1,"user_name":"tony"}// 如果在属性中不增加标签说明,则输出:// {"UserId":1,"UserName":"tony"}// 可以看到直接用struct的属性名做键值。// ==其中还有一个bson的声明,这个是用在将数据存储到mongodb使用的==struct成员变量标签(Tag)获取
那么当我们需要自己封装一些操作,需要用到Tag中的内容时,咋样去获取呢?这边可以使用反射包(reflect)中的方法来获取:完整代码如下:
package mainimport ( "encoding/json" "fmt" "reflect")func main() { type User struct { UserId int `json:"user_id" bson:"user_id"` UserName string `json:"user_name" bson:"user_name"` } // 输出json格式 u := &User{UserId: 1, UserName: "tony"} j, _ := json.Marshal(u) fmt.Println(string(j)) // 输出内容:{"user_id":1,"user_name":"tony"} // 获取tag中的内容 t := reflect.TypeOf(u) field := t.Elem().Field(0) fmt.Println(field.Tag.Get("json")) // 输出:user_id fmt.Println(field.Tag.Get("bson")) // 输出:user_id}自定义tag
type User struct { UserId int `json:"user_id" bson:"user_id" test:"test"` UserName string `json:"user_name" bson:"user_name"` }获取tag中test的值
// 获取tag中的内容typeof := reflect.TypeOf(u)field := typeof.Elem().Field(0)fmt.Println(field.Tag.Get("json"))// 输出:user_idfmt.Println(field.Tag.Get("bson"))// 输出:user_idfmt.Println(field.Tag.Get("test"))// 输出:test关于"Go中JSON解析时tag怎么用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
输出
内容
格式
属性
时候
标签
数据
知识
变量
引号
成员
方法
行业
存储
不同
实用
特殊
代码
右侧
含义
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网科技名片
为想互联网科技怎么样
科技互联网政务服务
智能科技公司是互联网公司吗
互联网与科技发展
重庆互联网络科技
一五八零互联网科技
互联网科技有限公司 翻译
互联网金融监管科技
开启互联网科技时代小说
深圳国际航运科技和互联网
济南华为互联网科技产业总部基地
阿里互联网科技公司
湖北码尼互联网科技有限公司电话
中和天地互联网科技有限公司
黑科技 体验场景 互联网大会
厦门江牛科技互联网
互联网相关科技技术
互联网与数字科技关系
广州淘业互联网络科技
金融科技与互联网金融
凡科互联网科技
丰台科技园 互联网
湖南洣水互联网科技有限公司扣款
彤创互联网科技有限公司
华夏互联网科技业
伊宁互联网科技做什么的
江苏互联网智能科技产品出厂价
绵阳真晨互联网科技有限公司