首页 > Web开发 > 详细

11.处理模型中json tag不一致的问题

时间:2019-12-26 19:31:05      阅读:96      评论:0      收藏:0      [点我收藏+]

处理模型中json tag不一致的问题

举个例子服务端返回的地址插件如下,使用的tag所以服务端返回的json字段名为pid,和pname

type ProdModel struct {
    ProdId   int    `json:"pid"`
    ProdName string `json:"pname"`
}

然而我们proto文件定义的是这样的,很明显两个字段名字对不上,那么我们用proto文件生成的model去解析response的时候就会解析不出来了

message ProdModel {
    int32 ProdID = 1;
    string ProdName = 2;
}

使用一个第三方插件来解决这个问题

技术分享图片

技术分享图片

修改一下proto文件,在proto中加上这样的注释,就会在生成pb文件的时候把所需要的tag改掉

syntax = "proto3";
package Models;

message ProdModel {
    // @inject_tag: json:"pid"
    int32 ProdID = 1;
    // @inject_tag: json:"pname"
    string ProdName = 2;
}

message ProdRequest {
    int32 size = 1;
}

message ProdListResponse {
    repeated ProdModel data = 1;
}

执行这两条命令,注意有先后顺序,要先生成了pb文件,才能用这个第三包去修改他的tag

protoc --micro_out=../ --go_out=../ Prods.proto
protoc-go-inject-tag -input=../Prods.pb.go




11.处理模型中json tag不一致的问题

原文:https://www.cnblogs.com/hualou/p/12103678.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!