Как добраться, структура Google Protobuf обмениваются сообщениями без определения

Я должен получить структуру сообщения сообщения protobuf, переданного мне без определения сообщения. Используя методы UnknownFieldSet, я смог получить строковое представление сообщения как указано ниже:

1: "a"
2: {
   3:"b"
   4:"c"
}

Какую структуру данных поле 2 представляет? Использование UnknownFieldSet. Field.getGroupList я смог получить содержание поля 3 и 4, делает, который означает, что поле 2 имеет структуру группы "устаревшую"?

5
задан Jonas 20 April 2010 в 18:11
поделиться

1 ответ

Если вы разместили необработанные двоичные данные, мы можем сказать вам - или вы можете посмотреть документацию по кодировке буфера протокола . Если Вы видите поле с типом провода 3, которое указывает на группу.

Я не так хорошо знаком с UnknownFieldSet API, как, вероятно, должен быть, но это звучит так, как будто Вы имеете дело с группой.

С другой стороны, я бы ожидал, что большинство случаев использования групп будет внутренним для Google - откуда взялись эти данные? Конечно, нет ничего, что остановило бы людей от использования устаревшего группового формата вместо встроенных сообщений, но я бы надеялся , что лишь немногие так делают...

Есть ли какая-нибудь причина, по которой вы не можете запросить файл .proto? Хотя некоторая информация определённо может быть получена из буферов протоколов без их определений, на самом деле они предназначены для использования в ситуациях, когда оба конца do знают формат сообщений - хотя, возможно, и разные версии.

3
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: