问题

message GetRes {bool is_abc = 1;
}

当 is_abc 值为false时,直接输出response无法显示 is_abc 这个字段。在编译出来的pb.go(我用的go语言)文件中可以看到这个字段后面带有 omitempty 属性,也就是空值被忽略。
直接修改pb.go文件不友好。

解决办法

在代码中也写一个与proto中一样的数据结构,比如:

type Resp struct {IsAbc bool `json:"is_abc"`
}

把proto中的数据赋值过来就好了

其它

https://stackoverflow.com/questions/34716238/golang-protobuf-remove-omitempty-tag-from-generated-json-tags

func (h *infoHandler) Info(ctx echo.Context) (interface{}, error) {ctx.Response().Header().Set("Content-Type", "application/json; charset=utf-8")m := jsonpb.Marshaler{EmitDefaults: true}m.Marshal(ctx.Response().Writer, resp)
}

由于我用的echo框架,这里一定要返回一个Response,这样造成返回了两个数据 --> 两个json数据连一起了。。

还有用 oneof 关键字定义proto的,然而赋值的时候不知道怎么搞。。。
https://stackoverflow.com/questions/42622015/how-to-define-an-optional-field-in-protobuf-3
https://zhuanlan.zhihu.com/p/46603988

proto3字段值为空时被忽略问题相关推荐

  1. Oracle中SQL查询字段值为空时,指定默认值

    一.实现效果 实现设备字段有值显示[加工]否则显示[未加工] 二.Oracle中NVL 2.1.NVL函数功能介绍 NVL 是Oracle的函数,功能是实现空值的转换,如果fieldName为NULL ...

  2. 【SpringBoot整合Mybatis】数据库某字段值为空时,接口未返回该字段 解决办法

    [SpringBoot整合Mybatis]数据库字段为空时,接口不返回该字段 解决办法 问题描述: 排查问题: 解决问题: 测试: 参考资料: 今天整合项目的时候,发现了SpringBoot整合Myb ...

  3. PostgreSql、MySql字段值为空时取其他值语句

    PostgreSql: COALESCE(expr1,expr2) COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. sele ...

  4. Hive Lateral View explode字段值为空时,导致数据异常丢失解决方案

    1.问题描述 日常工作中,我们经常会用Lateral View 结合explode把非结构化数据转化成结构化数据,但是该方法对应explode的内容是有非null限制的,否则就有可能造成数据缺失. 现 ...

  5. cxf webservice接收date类型字段值为空导致异常问题解决方案

    cxf webservice接收date类型字段值为空时,后台会报错.原因是cxf没有很好处理空值的情况. 解决方案 自定义date字段的转换方式.以springboot cxf 为例.涉及以下三点改 ...

  6. Qt中SQL语句update同时更新多字段及设置字段值为空的方法

    Qt中往往需要对数据库进行操作,常出现根据某变量更改相关字段的内容.一般地,可以采用名称绑定和位置绑定两种方法. Qt与MySQL连接方法:https://blog.csdn.net/ckzhb/ar ...

  7. IE9或以上的浏览器flash值为空时,导致domready不触发

    在前些时间开发中遇到一个问题 当flash值<param name="movie" value=""/>为空时,IE版本>=9不会触发domr ...

  8. Excel 函数Min求最小值值为空时为零的情况如何处理,或者排除0怎么做

    MIN函数求最小值,空为零的处理及文字为零的处理 Excel中,用MIN函数求最小值,往往出来的0是因为值为空,有时值中如果存在文字,或者取不到值,也会造成为0.这是由于MIN函数的特性决定的,那么, ...

  9. Cache 'redisCache' does not allow 'null' values;设置值为空时不存入Redis;设置unless无效;

    [2019-03-05 23:16:46.695] - 20388 严重 [http-nio-8089-exec-5] --- org.apache.catalina.core.ContainerBa ...

最新文章

  1. 大模型时代,我们真的不再需要分词了吗?
  2. Linux中安装配置hadoop集群
  3. JSP+Servlet+Ajax实现用户增删改查的例子
  4. 黑客与画家 第十四章
  5. 循环神经网络的数据预处理
  6. 极其实用的sql脚本【建议收藏】
  7. 转: 虚拟IP(VIP)原理
  8. Tensorflow的快速安装(张量图例)
  9. 微软编程一小时--微软2014实习生招募编程模拟测试感想
  10. Android 11.0 12.0默认开启开发者模式和开启usb调试模式
  11. 牛客每日一题 飞扬的小鸟
  12. java 刻度尺_用java代码如何实现画坐标刻度尺图
  13. Shifting Stacks【题解】
  14. 励志短片:献给努力前行的你
  15. Java程序员进阶全过程
  16. 145.7. Miscellaneous
  17. ‘settings.xml’ has syntax errors less… 和Parent ‘org.springframework.boot’has problems less…的问题解决
  18. python3环境配置教程_Python3 环境搭建
  19. DM7数据守护集群部署
  20. ES8311 低功耗单声道音频编解码器(中文)

热门文章

  1. 原来写在BlogBus(博客大巴)上的文章搬运到这里!~
  2. 30句感悟人生的格言名言
  3. 微信公众号怎么生成带参数的二维码?
  4. 了解前端工程化之组件化——Vue组件
  5. 论文笔记(综述):Deep Learning-based Multi-focus Image Fusion: A Survey and A Comparative Study
  6. 医疗项目 开源_开源医疗IT的未来
  7. dom绑定click事件无效及解决办法
  8. 汽车销售管理系统 c语言版 课程设计,汽车销售管理系统c语言版.docx
  9. mysql 计算农历_MySQL 获取农历年函数
  10. 使用nrm切换本地npm源