当前位置:  开发笔记 > 编程语言 > 正文

golang protobuf从生成的json标签中删除omitempty标签

如何解决《golangprotobuf从生成的json标签中删除omitempty标签》经验,为你挑选了1个好方法。

我正在使用谷歌grpc与json代理.由于某种原因,我需要omitempty从*.pb.go文件中生成的结构中删除标记.

如果我有这样的原型消息

message Status {
  int32 code = 1;
  string message = 2;
}

生成的结构看起来像这样

type Status struct {
  Code int32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"`
  Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
}

但我需要omitempty从生成的结构中删除标记.我怎样才能做到这一点?



1> Jay Taylor..:

[更多]便携式解决方案:

用于sed在生成via之后剥离标签protoc

在生成* .pb.go文件之后,我在go:generate脚本中实际使用的示例:

ls *.pb.go | xargs -n1 -IX bash -c 'sed s/,omitempty// X > X.tmp && mv X{.tmp,}'

注意:sed -i此处未使用(inline-replacement),因为该标志在标准OS-X和Linux之间不可移植。

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有