【解决了一个小问题】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
原文地址:https://www.cnblogs.com/ahfuzhang/p/12922283.html