proto3字段值为空时被忽略问题
问题
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字段值为空时被忽略问题相关推荐
- Oracle中SQL查询字段值为空时,指定默认值
一.实现效果 实现设备字段有值显示[加工]否则显示[未加工] 二.Oracle中NVL 2.1.NVL函数功能介绍 NVL 是Oracle的函数,功能是实现空值的转换,如果fieldName为NULL ...
- 【SpringBoot整合Mybatis】数据库某字段值为空时,接口未返回该字段 解决办法
[SpringBoot整合Mybatis]数据库字段为空时,接口不返回该字段 解决办法 问题描述: 排查问题: 解决问题: 测试: 参考资料: 今天整合项目的时候,发现了SpringBoot整合Myb ...
- PostgreSql、MySql字段值为空时取其他值语句
PostgreSql: COALESCE(expr1,expr2) COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. sele ...
- Hive Lateral View explode字段值为空时,导致数据异常丢失解决方案
1.问题描述 日常工作中,我们经常会用Lateral View 结合explode把非结构化数据转化成结构化数据,但是该方法对应explode的内容是有非null限制的,否则就有可能造成数据缺失. 现 ...
- cxf webservice接收date类型字段值为空导致异常问题解决方案
cxf webservice接收date类型字段值为空时,后台会报错.原因是cxf没有很好处理空值的情况. 解决方案 自定义date字段的转换方式.以springboot cxf 为例.涉及以下三点改 ...
- Qt中SQL语句update同时更新多字段及设置字段值为空的方法
Qt中往往需要对数据库进行操作,常出现根据某变量更改相关字段的内容.一般地,可以采用名称绑定和位置绑定两种方法. Qt与MySQL连接方法:https://blog.csdn.net/ckzhb/ar ...
- IE9或以上的浏览器flash值为空时,导致domready不触发
在前些时间开发中遇到一个问题 当flash值<param name="movie" value=""/>为空时,IE版本>=9不会触发domr ...
- Excel 函数Min求最小值值为空时为零的情况如何处理,或者排除0怎么做
MIN函数求最小值,空为零的处理及文字为零的处理 Excel中,用MIN函数求最小值,往往出来的0是因为值为空,有时值中如果存在文字,或者取不到值,也会造成为0.这是由于MIN函数的特性决定的,那么, ...
- 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 ...
最新文章
- 大模型时代,我们真的不再需要分词了吗?
- Linux中安装配置hadoop集群
- JSP+Servlet+Ajax实现用户增删改查的例子
- 黑客与画家 第十四章
- 循环神经网络的数据预处理
- 极其实用的sql脚本【建议收藏】
- 转: 虚拟IP(VIP)原理
- Tensorflow的快速安装(张量图例)
- 微软编程一小时--微软2014实习生招募编程模拟测试感想
- Android 11.0 12.0默认开启开发者模式和开启usb调试模式
- 牛客每日一题 飞扬的小鸟
- java 刻度尺_用java代码如何实现画坐标刻度尺图
- Shifting Stacks【题解】
- 励志短片:献给努力前行的你
- Java程序员进阶全过程
- 145.7. Miscellaneous
- ‘settings.xml’ has syntax errors less… 和Parent ‘org.springframework.boot’has problems less…的问题解决
- python3环境配置教程_Python3 环境搭建
- DM7数据守护集群部署
- ES8311 低功耗单声道音频编解码器(中文)
热门文章
- 原来写在BlogBus(博客大巴)上的文章搬运到这里!~
- 30句感悟人生的格言名言
- 微信公众号怎么生成带参数的二维码?
- 了解前端工程化之组件化——Vue组件
- 论文笔记(综述):Deep Learning-based Multi-focus Image Fusion: A Survey and A Comparative Study
- 医疗项目 开源_开源医疗IT的未来
- dom绑定click事件无效及解决办法
- 汽车销售管理系统 c语言版 课程设计,汽车销售管理系统c语言版.docx
- mysql 计算农历_MySQL 获取农历年函数
- 使用nrm切换本地npm源