[go-micro实战]10 处理模型中json tag不一致

该博客介绍了如何利用`protoc-go-inject-tag`工具为protobuf定义的消息结构体自动添加JSON标签。首先,下载并安装该工具,然后在proto文件中添加注释,指定所需的JSON字段名。通过运行命令,工具会将注释转换为相应的Go代码标签,从而简化模型文件的维护。示例中展示了如何为`ProdModel`结构体的`ProdID`和`ProdName`字段添加标签。
摘要由CSDN通过智能技术生成
go get github.com/favadi/protoc-go-inject-tag

下载第三方工具包,go build并将文件放入bin目录下

添加注释

//option go_package = "gitee.com/Hind3ight/easy-go-micro/go-micro/models";
message ProdModel {
  // @gotags: json:"ip"
  int32 ProdID = 1;
  // @gotags: json:"pName"
  string ProdName = 2;
}

使用命令

protoc-go-inject-tag -input="prod.pb.go"

这样prod.pb.go中的模型tag就变换为所需的了

type ProdModel struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// @inject_tag: json:"pID"
	ProdID int32 `protobuf:"varint,1,opt,name=ProdID,proto3" json:"pID"`
	// @inject_tag: json:"pName"
	ProdName string `protobuf:"bytes,2,opt,name=ProdName,proto3" json:"pName"`
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值