Я должен получить структуру сообщения сообщения protobuf, переданного мне без определения сообщения. Используя методы UnknownFieldSet, я смог получить строковое представление сообщения как указано ниже:
1: "a"
2: {
3:"b"
4:"c"
}
Какую структуру данных поле 2 представляет? Использование UnknownFieldSet. Field.getGroupList я смог получить содержание поля 3 и 4, делает, который означает, что поле 2 имеет структуру группы "устаревшую"?
Если вы разместили необработанные двоичные данные, мы можем сказать вам - или вы можете посмотреть документацию по кодировке буфера протокола . Если Вы видите поле с типом провода 3, которое указывает на группу.
Я не так хорошо знаком с UnknownFieldSet API, как, вероятно, должен быть, но это звучит так, как будто Вы имеете дело с группой.
С другой стороны, я бы ожидал, что большинство случаев использования групп будет внутренним для Google - откуда взялись эти данные? Конечно, нет ничего, что остановило бы людей от использования устаревшего группового формата вместо встроенных сообщений, но я бы надеялся , что лишь немногие так делают...
Есть ли какая-нибудь причина, по которой вы не можете запросить файл .proto? Хотя некоторая информация определённо может быть получена из буферов протоколов без их определений, на самом деле они предназначены для использования в ситуациях, когда оба конца do знают формат сообщений - хотя, возможно, и разные версии.