go :tag实现json字段转换

本文介绍在Go语言中如何通过使用结构体tag来实现JSON字段名的自定义,包括大小写转换和驼峰命名法的转换,使得字段名能够符合API约定的小写字母开头。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:
我们都知道go的struct中,如果字段需要对外使用,就需要使用首字母大写的格式,但是如果API中约定要使用小写字母开头呢?
比如:

type CbsVolume struct {

	// cbs id
	CbsDiskId *string 

	// fs类型
	FsType *string 

	// 是否只读
	ReadOnly *bool 
}

此时如果执行json.Marshal(),结构体会有三个字段CbsDiskId,FsType,ReadOnly,都是首字母大写的
如果我们要想使用小写的,可以借助tag实现

type CbsVolume struct {

	// cbs id
	CbsDiskId *string `json:"cbsDiskId,omitempty" name:"cbsDiskId"`

	// fs类型
	FsType *string `json:"fsType,omitempty" name:"fsType"`

	// 是否只读
	ReadOnly *bool `json:"readOnly,omitempty" name:"readOnly"`
}

此时转换出来的json中 三个字段首字母都是小写
一句话: go的 tag 可以帮你在零污染实体的前提下实现json的自定义
什么大小写转换,驼峰转化都是可以实现的
详细 的原理可以参考:
https://juejin.im/post/5b338516f265da596e4ceb9e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值