Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go语言之Json的struct tag

Go语言之Json的struct tag

作者头像
灰子学技术
发布于 2023-10-30 07:20:50
发布于 2023-10-30 07:20:50
2130
举报
文章被收录于专栏:灰子学技术灰子学技术

最近使用go语言的json包的时候,有一个struct tag标识,关于它的使用规则如下所示:

1.这个标识在json调用marshal做序列化操作的时候,会把key值解析为struct tag定义的值。

2.如果没有这个标识,在Key值是大写的时候,会将这个值的名字解析为序列化之后的Key值。如果是小写就会忽略,这个是因为Go规定首字母是大写字母是公有,小写字母是私有导致的。

问题:一旦我们需要json序列化之后的结果中的Key值名称,希望是小写字母的时候,我们该怎么办?

答案就是用struct tag,因为它可以讲大写字母重名命成小写字母。

例子:

备注:小写字母 在使用Marshal并不会显示出来。

使用struct tag之后的例子,从输出可以看出,Key变成了小写的name和age。

参考文章:

Go语言中的strcut tag

灰子作于二零一九年五月二十九日。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 灰子学技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go语言核心之美 -JSON
JSON(JavaScript Object Notation)是一种发送和接收结构化信息的标准化表示法。类似的标准化协议还有XML、ASN.1、Protobuf、Thrift等等,这些协议都有自己的鲜明特色,但是由于JSON的简洁、可读、流行性,因此它是应用最广泛的协议之一。 Go语言对上述协议的编码和解码都有很好的支持,例如标准库中的encoding/json、encoding/xml、encoding/asn1以及第三方库github.com/golang/protobuf,这些包提供的API接口都
李海彬
2018/03/22
1.5K0
Go语言JSON 处理
struct能被转换的字段都是首字母大写的字段,但如果想要在json中使用小写字母开头的key,可以使用struct的tag来辅助反射。
王小明_HIT
2021/10/11
8890
go :tag实现json字段转换
我们都知道go的struct中,如果字段需要对外使用,就需要使用首字母大写的格式,但是如果API中约定要使用小写字母开头呢?
IT工作者
2022/07/22
1.2K0
Go语言——Json处理
 JSON (JavaScript Object Notation)是一种比XML更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成。
传说之下的花儿
2023/04/16
2.1K0
Go语言——Json处理
Go语言中的JSON处理 【Go语言圣经笔记】
JavaScript对象简谱(JSON, Java Script Object Notation)是一种用于发送和接收结构化信息的标准协议。在类似的协议中,JSON并不是唯一的一个标准协议。 XML(§7.14)、ASN.1和Google的Protocol Buffers都是类似的协议,并且有各自的特色,但是由于简洁性、可读性和流行程度等原因,JSON是应用最广泛的一个。
Steve Wang
2021/12/06
6420
Golang之旅17-结构体可见性和JSON序列化
结构体中字段大写开头表示可公开访问,小写表示私有(仅在定义当前结构体的包中可访问)
皮大大
2021/03/02
1.1K0
go语言json操作指南
1、Go语言的JSON 库   Go语言自带的JSON转换库为 encoding/json 1.1)其中把对象转换为JSON的方法(函数)为 json.Marshal(),其函数原型如下 func Marshal(v interface{}) ([]byte, error)     也就是说,这个函数接收任意类型的数据 v,并转换为字节数组类型,返回值就是我们想要的JSON数据和一个错误代码。当转换成功的时候,这个错误代码为nil     在进行对象转换为 JSON 的过程中,会遵循如下几条规则:  
李海彬
2018/03/23
1.4K0
[Go基础]Json在Go中的使用
本文主要根据Go语言Json包[1]、官方提供的Json and Go[2]和go-and-json[3]整理的。
TOMOCAT
2020/06/09
8.8K0
【Go 基础篇】Go语言结构体实例的创建详解
在Go语言中,结构体是一种强大的数据类型,允许我们定义自己的复杂数据结构。通过结构体,我们可以将不同类型的数据字段组合成一个单一的实例,从而更好地组织和管理数据。然而,在创建结构体实例时,有一些注意事项需要考虑。本文将深入探讨在Go语言中如何创建结构体实例,包括基本的结构体定义、初始化方式、零值初始化、部分字段初始化以及嵌套结构体的创建,同时也会指出在使用结构体时需要注意的地方。
繁依Fanyi
2023/10/12
2270
【Go 基础篇】Go语言结构体实例的创建详解
Go 编程 | 连载 28 - Go 与 JSON
在 Go 编程 | 连载 17 - 结构体方法 中层简单的介绍过 JSON 序列化与反序列化,在本文中将更详细的讲述 JSON 以及结构体标签是如何细致的控制 JSON 的,以及如何使用 HTTP 获取 API 的 JSON Response Body。
RiemannHypothesis
2022/09/28
4440
Golang HTTP请求Json响应解析方法以及解析失败的原因
在Golang Web编程中,json格式是常见的传输格式,那么json数据要怎么解析呢? 例如下面请求地址 http://api.open-notify.org/astros.json 响应数据如下:
用户1392128
2024/01/08
4200
在Go语言中使用JSON
Encode 将一个对象编码成JSON数据,接受一个interface{}对象,返回[]byte和error: func Marshal(v interface{}) ([]byte, error) Marshal函数将会递归遍历整个对象,依次按成员类型对这个对象进行编码,类型转换规则如下: bool类型 转换为JSON的Boolean 整数,浮点数等数值类型 转换为JSON的Number string 转换为JSON的字符串(带""引号) struct 转换为JSON的Object,再根据各个成员的类
李海彬
2018/03/26
9900
Golang web基础——JSON
使用json.Marshal()函数可以对一组数据进行JSON格式的编码。 json.Marshal()函数的声明如下:
羊羽shine
2019/05/29
4000
Go 语言网络编程系列(九)—— JSON 处理篇:JSON 编解码基本使用入门
Go 语言内置了 encoding/json 标准库对 JSON 进行支持,开发者可以通过它轻松生成和解析 JSON 格式数据,下面我们来简单演示下这个库的使用。
学院君
2019/12/03
1.8K0
Go 语言网络编程系列(九)—— JSON 处理篇:JSON 编解码基本使用入门
Go基础之--结构体和方法
结构体的定义 结构体是将零个或者多个任意类型的命令变量组合在一起的聚合数据类型。 每个变量都叫做结构体的成员。 其实简单理解,Go语言的结构体struct和其他语言的类class有相等的地位,但是GO语言放弃了包括继承在内的大量面向对象的特性,只保留了组合这个基础的特性。 所有的Go语言类型除了指针类型外,都可以有自己的方法。 先通过一个下的例子理解struct,下面的这个例子用于定义一个student的struct,这个机构体有以下属性:Name,Age,Sex,Score,分别表示这个学生的名字,年龄,
coders
2018/03/30
6950
Go基础之--结构体和方法
第一个 Go 程序"hello,world" 与 main 函数和Go常用基本命令
啰嗦一下 Go 的命名规则。Go 源文件总是用全小写字母形式的短小单词命名,并且以.go 扩展名结尾。以下是Go文件命名规则的主要要点:
贾维斯Echo
2023/10/18
2.6K0
第一个 Go 程序"hello,world" 与 main 函数和Go常用基本命令
Golang结构体入门
1.结构体是值类型:在Go语言中,结构体是一种值类型,与数组和基本数据类型一样。当结构体被赋值给一个变量或传递给一个函数时,它的值会被复制一份。因此,对复制的结构体进行修改不会影响原来的结构体。
周小末天天开心
2023/10/16
1860
Go语言中JSON处理技巧总结
使用Go标准库中的 json.Marshal()与json.Unmarshal进行基本的序列化和反序列化。
Go学堂
2023/08/28
7220
Go语言中JSON处理技巧总结
Python基础 - 标识符命名规范
似小陈吖
2023/10/17
2110
Go语言开发规范指南
鲲志说
2025/04/07
570
相关推荐
Go语言核心之美 -JSON
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档