协议缓冲区v2跳过未知字段

时间:2018-11-06 01:06:27

标签: protocol-buffers proto protobuf-java

似乎protov2保留了未知字段。是否存在用于执行相反操作的api /界面,即跳过不需要的字段

例如

  message C {
     required int32 id = 1;
     required string tag = 2;
   }

   message B { 
      required int32 id = 1;
      optional bytes data = 2;
    }
    message A { 
       repeated messageC tagInfo = 1;
       repeated messageB messages = 2;
     } 

proto2中是否有一种方法可以只读取messageC而不从messageA的序列化版本中读取messageB?到目前为止,似乎如果我要创建另一个较浅的messageA版本,则仅使用具有相同字段编号的tagInfo来创建messageD ...然后,仍将解析消息并将其存储为“未知”字段。

但是我只想基于tagInfo中存在的一些条件信息来读取消息。 这可能吗 ?我是否需要使用CodedInputStream编写自己的解析器..如果是这样,如何在Java中实现?

0 个答案:

没有答案