Кажется, что 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 без чтения messageB из сериализованной версии messageA? На данный момент кажется, что если бы я должен был создать другую более легкую версию messageA, скажем, messageD только с tagInfo с тем же номером поля ..., тогда сообщения все равно были бы проанализированы и прочитаны и сохранены как «неизвестные» поля.
Но я хочу только читать сообщения, основываясь на некоторой условной информации, представленной в tagInfo.
Это возможно ? Нужно ли мне писать свой собственный парсер с использованием CodedInputStream ... если да, то как этого достичь в Java?