ProtoBuf 字段 零 值问题
来源:2-6 ProtoBuf字段的可选性
CHENGZZZ
2021-07-21 23:14:36
老师您好,还有点不理解
如果定义字段的值就是 0 的话
后端传过去的岂不是没有这个字段?
1回答
ccmouse
2021-07-25
protobuf中我们会认为不区分0和没有这个数这两种情况。就像我这里所表述的,我们要把我们的api设计成不需要区分0和不存在这两种情况,这样就能愉快的使用protobuf。
反之,我们必须区分0和没有,就有几种方法,可能会坑。就拿我这个fee_cent字段做例子,一定要区分0和不填两种情况的话:
我们再加一个bool has_fee_cent字段,明确告诉后端有没有fee_cent。这样绝对不会坑,但是用了两个字段不太美观。
我们在protobuf的序列化时,都可以选择如果fee_cent是0,我们要不要生成一行fee_cent:0。这个我后面在使用go语言时在marshaller部分会碰到。但这个就要求客户端服务器保持一致。
相似问题
回答 1
回答 1