【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty
参考了这篇帖子:golang protobuf从生成的json标记中删除omitempty标记
由于是在windows上开发,因此写了一个python脚本来解决:
remove_tag.py
import sys
def main():
argc = len(sys.argv)
if argc<2:
print('usage:%s <xxx.go>'%sys.argv[0])
return
f = open(sys.argv[1], 'rb')
if not f:
print("open file error:%s"%sys.argv[1])
return
s = f.read().decode('utf-8')
f.close()
s = s.replace(',omitempty', '')
#
f = open(sys.argv[1], 'wb')
f.write(s.encode('utf-8'))
f.close()
print('ok')
if __name__=='__main__':
main()
然后生成pb.go的bat文件这样写:
gen_pb.bat
protoc --plugin=protoc-gen-go.exe --go_out=../ *.proto
python remove_tag.py ../src/pb/interface.pb.go
【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty的更多相关文章
- 【解决了一个小问题】golang gin框架中的模板,让模板中的参数不要做HTML转义
代码中使用了类似的方式来向模板填充参数: c.HTML(200, "list.html", gin.H{"data":builder.String()}) 模板 ...
- 【解决了一个小问题】golang build中因为缓存文件损坏导致的编译错误
编译的过程中出现了一个吓人的错误: GOROOT=C:\Go #gosetup GOPATH=C:\Users\ahfuzhang\go #gosetup C:\Go\bin\go.exe mod t ...
- 【解决了一个小问题】golang中引用一个路径较长的库,导致goland中出现"module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2"
在项目中的go.mod文件中有这样一句: require ( github.com/xxx-devops/xx1/sdk/go v2.2.3 ) 项目的编译没有问题,但是goland中出现如下提示: ...
- 【解决了一个小问题】golang的go.mod中出现版本错误
代码中的这一句使用prometheus2.28.0版本的代码: import "github.com/prometheus/prometheus/prompb" 我把require ...
- 【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败
发现在如下代码中存储kafka生产者初始化失败: config.Version = sarama.V0_10_2_1 //V2_2_0_0 producer, err := sarama.NewSyn ...
- 【解决了一个小问题】golang xorm中使用where id in (xxx),没办法使用参数替换
代码中使用XORM来从数据库查询数据,有类似如下的代码: session.Where("id in (?)", strings,Join(arr, ",")) ...
- 【解决了一个小问题】golang go.mod中多了一个斜杠导致replace无效
replace github.com/sxxx/common_lib/src/ => ../../common_lib/src 修改成 replace github.com/sxxx/commo ...
- 【解决了一个小问题】go.mod文件中引用另一个库,总会自动拉取新版本
我的项目依赖某个旧的公共库: require ( git.xxx.com/myprj/mylib v0.0.43 ) 可以编译的时候,系统总会自动加上这样的路径: require ( git.xxx. ...
- 【解决了一个小问题】如何展示VictoriaMetrics组件上报的bucket数据
VM体系还真的是不一(he)样(qun), 它上报的监控数据长这样: vmagent_remotewrite_block_size_rows_bucket{vmrange="2.448e+0 ...
随机推荐
- LuoguP7714 「EZEC-10」排列排序 题解
Content 给定一个 \(1\sim n\) 的一个排列 \(p\),你每次可以选择一个区间 \([l,r]\) 并花费 \(r-l+1\) 的代价将下标在这个区间内的所有数升序排序,求使得排列 ...
- Python 线程池模块threadpool 、 concurrent.futures 的 ThreadPoolExecutor
一.threadpool 基本用法 pip install threadpool pool = ThreadPool(poolsize) requests = makeRequests(some_ ...
- c++设计模式概述之命令
代码写的不够规范,目的是为了缩短文章篇幅,实际中请不要这样做. 1.概述 命令模式是一种数据驱动的模式.将请求封装到命令的对象中,再传给调用对象,调用对象再处理该命令. [将一个请求封装为一个对象] ...
- 【LeetCode】669. Trim a Binary Search Tree 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...
- 【LeetCode】922. Sort Array By Parity II 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 使用奇偶数组 排序 奇偶数位置变量 日期 题目地址: ...
- 【LeetCode】893. Groups of Special-Equivalent Strings 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 利用shiro反序列化注入冰蝎内存马
利用shiro反序列化注入冰蝎内存马 文章首发先知社区:https://xz.aliyun.com/t/10696 一.shiro反序列化注入内存马 1)tomcat filter内存马 先来看一个普 ...
- MacOS使用Docker创建MySQL主主数据库
主从同步配置可以参考上一篇MacOS使用Docker创建MySQL主从数据库 一.创建MySQL数据库容器配置文件对应目录 我们在当前用户下创建一组目录,用来存放MySQL容器配置文件,(Linux下 ...
- 【MySQL作业】MySQL函数——美和易思数学函数和控制流函数应用习题
点击打开所使用到的数据库>>> 1.添加一条商品记录. 商品编码 goodsCode 商品名 goodsName 种类 category 单价 unitPrice 02005 夏 ...
- C#中ref关键字的用法总结
ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref ...