【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty

时间:2020-05-20 11:00:48   收藏:0   阅读:915

参考了这篇帖子: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

原文:https://www.cnblogs.com/ahfuzhang/p/12922283.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!